VNC is one option, but definitely not the only one and not the fastest one. Here are two more good options:
1. If you want something like LogMeIn (with no massing with port forwarding on the router and static IPs) than you can use Team viewer (http://www.teamviewer.com). The free version would be good for most basic applications. They have client and servers to all major operating systems.
Keep in mind that with VNC or TeamViewer you will be working on the active session currently on the Ubuntu machine. So you will not work in the background and anyone seating in front of the Ubuntu machine will see what you are doing.
2. If you want an RDP style connection (like Remote Desktop Connection in Windows) use NX Server and Client. There is a native server version for Ubuntu 12.04 and clients both for Ubuntu 12.04 and Windows. It would considerably faster than VNC or TeamViewer AND will work in the background - meaning you can connect remotely and work on the Ubuntu machine in your own graphic environment, without interfering with the local Ubuntu user's screen.
To install NX Server on the Ubuntu 12.04 machine (for older versions a different process is required) type in terminal:
To install the NX client for Ubuntu, Windows or Mac, download the latest client from:
sudo add-apt-repository ppa:freenx-team/ppa
sudo apt-get update
sudo apt-get install freenx-server
The usernames and passwords for access will be the same one on the Ubuntu machine.
If you are behind firewall or NAT router, you will need to forward port 22 to the Ubuntu machine.
Hope that helps!