The standard tools are SSH, for terminal (installed by default on most distros).
And VNC for remote graphics. For VNC I'd recommend you try out TightVNC, as its much faster than regular vnc. Basically VNC starts up another X server, so don't expect to see what other people are doing on the computer like in windows
To modify VNC's settings simply edit the 'vncserver' program (its actually a script), mine is in /usr/local/bin/.
All of these are ofcourse free