SQL Server CE supports nvarchar and ntext, which are UTF-16. Basically: store your data as UTF-16 in an nvarchar column, and you'll be set. Conveniently, .NET is also mostly UTF-16 (the char and string types are implemented as UTF-16), so this works out just fine.
If you absolutely must use UTF-8, you'll have to use varbinary / image, which means you lose most of the useful features of a database. You'll be able to store and retrieve, but filtering and other operations are much harder.
When storing data, make sure you either use N'foo' syntax for literals, or ADO.NET parameters of DbType.String (nvarchar) / DbType.StringFixedLength (nchar), and not DbType.AnsiString (varchar) / DbType.AnsiStringFixedLength (char)