At work if I have to connect to a client's Windows machine, I used to go in with Vncviewer through a ssh tunnel with the --via option like this:
vncviewer -via clienthostorIP usercomputername:0
No Scaling with Vncviewer
The other day I cam up against a client with Windows 7 and an enormous screen and found I couldn't scale it small enough to not have to scroll up and down, left and right every 5 minutes to click on the task bar etc.
My boss suggested Vinagre so I had a Google for vinagre+vnc+ssh+scaling and found it has scaling, and has recently added ssh tunneling as an extra option for the Vnc connection.
Well, no matter what I tried I couldn't get it to connect via vnc with the ssh tunnel option so I came up with a workaround. Just open a ssh tunnel first, and then connect with Vinagre.
Open two tabs or two screens in your Terminal
Tab/Screen 1: open a ssh connection from your clienthostIP to localhost:
ssh -C -L 5901:usercomputername:5900 clienthostorIP
Tab/Screen 2: Open vinagre against localhost:
Now you can connect to your client with Vinagre via a ssh tunnel and have access to scaling etc.