Akin to what can be done with emacs with slime: the core services can run on a performace grade remote computer while I can edit and run code from emacs gui on an netbook.
In my experience, the best way is with VNC. You can start a VNC server on the host machine, and then access this desktop remotely from anywhere with a VNC client. You can disconnect and reconnect at another time, and your desktop will still be there. Also, multiple users can all have different sessions going, or can access the same one. If you don't want each session to run a full blown desktop, you can configure it to be minimal. For security, it is recommended to use an SSH tunnel or similar.
The exact programs will vary based on your setup, but the things to google are bolded, above.
My setup is:
vnc4server
on a Ubuntu linux host. Good luck!
EDIT: Here is a screenshot of a vncserver session I just started up on our cluster, with matlab running in it. I'm accessing it through the vnc client on my mac. Works great!