I use Chicken of the VNC to control my parents' Mac, 1200 miles away. Works like a charm.
Download
Chicken of the VNC and put it in your Applications folder on your laptop. This lets you control other Macs.
On your desktop, go into System Preferences...->Sharing and turn on "Apple Remote Desktop" in the "Services" tab (you'll need to specify access privileges, and, in particular, a password). If your firewall is on, you'll need to go to the Sharing->Firewall tab and add a new rule ("New...", Port Name->Other, call it "VNC", and open up port 5900). This sets up your Mac to be controlled.
If you have a network router, you'll need to tell it to send traffic on port 5900 to you Mac's IP (intranet IP, like 192.168.1.xxx) address. This forwards VNC traffic to your Mac when it is to be controlled. Make sure your iMac always has the same IP so the router forwarding will work.
Use a service like
DynDNS to create a domain name others can access (like myname.homeip.net). This lets you find your internet IP address while on the road.
To disable it, just go into the Sharing preferences panel and turn off Apple Remote Desktop.