As powerful as Thinking Particles is, there is one big problem Maxon didn’t resolve till now and that is baking the particles. Rendering on a render farm resolves in a lot of headaches. There is one workaround involving the Matrix Object, just look for it in the help documents, but it is not suitable on every occasion.
Update 1:The above stated is no longer true, look for douwes solution in the comments.
I am a big fan of the Standard Particle System, it’s not as powerful as TP, but can be used in a variety of ways. The big plus on the Standard Particles is that you can bake them very easily. Here is a hack in order to emit particles from a surface. The core principle here is to use a vibrate tag with a high frequency in conjunction with a surface clamp. This results in a wild jumping behaviour of the emitter and looks like the surface is emitting particles. The same technique is also applicable for volumes and splines. In my tests using a Align to Spline tag with a very high frequency value change was also satisfying for emitting particles on a spline. (no audio)