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.
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.