VNC Tunneling on Ubuntu for Safer VNC
ssh -L [local port]:localhost:[remote port] [user name]@[domain]
You can then run the VNC viewer like this:
vncviewer -LowColourLevel 1 localhost:[local port]
The color level setting here is what results in the best mix between speed and prettiness for me.
-LowColourLevel level
Selects the reduced colour level to use on slow links. level can range from 0 to 2, 0 meaning 8 colours, 1 meaning 64 colours (the default), 2 meaning 256 colours.
If you are connecting from Linux to Linux (as opposed to from Linux to XP), more efficient means may be available.