I find TeamViewer to be a great choice. The service is free for personal use, and you can have both preinstalled hosts as well as ad-hoc connections in a remote support situation. It's also compatible with both Windows and Mac OS X.
The program also has another neat trick: During a session, you can flip the roles of "viewer" and "presenter". If you need to demonstrate something to someone you're connected to, you can flip roles, perform the task on your own computer with them watching, then flip back to view their screen again.