Client-side, I use Xming and the X2Go client. These are very easy to set up.
Server side, I installed NX / FreeNX. One could go with a VNC server or many other options, but I found that FreeNX seemed to work better for my needs and the server-side desktop UI just seemed snappier for me.
I've used most systems out there, and don't have a long-standing preference. Still, a word of advice: it's best to learn how to set these up via a script, and save your script in case you want to re-generate your AMI. The various configuration contortions you may go through are not worth re-learning should you decide to produce a new AMI from scratch.
It's good to learn your options for client and server side software and tinker with each one at a time. I started several cheap spot instances while finding which setup worked best for me.