It's not all that hard really, but you may want to make your question a bit more specific.
If you're talking to a database, make sure your database stores data in UTF-8 and the connection to your database is in UTF-8 (a common pitfall). Make sure to run something like this when establishing a connection:
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
For user input, set the accept-charset
attribute on your forms.
<form accept-charset="utf-8">
Serve your sites with an appropriate HTTP header:
header('Content-Type: text/html; charset=utf-8');
or at least set appropriate meta tags for your site:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Keep your source code files encoded in UTF-8.
If you keep everything in UTF-8, you usually don't need to worry about anything. It's only getting problematic once you start mixing encodings throughout your app.
If you're starting to talk about string manipulation of course, you'll have to take a little more care. Mostly you'll want to use the mb_
set of string functions, as you pointed out yourself.