There is unknown feature to many people in vncviewer which does ssh tunneling with following option:
man vncviewer
-via gateway
Automatically create encrypted TCP tunnel to the gateway machine
before connection, connect to the host through that tunnel
(TightVNC-specific). By default, this option invokes SSH local
port forwarding, assuming that SSH client binary can be accessed
as /usr/bin/ssh. Note that when using the -via option, the host
machine name should be specified as known to the gateway
machine, e.g. "localhost" denotes the gateway, not the machine
where vncviewer was launched. The environment variable
VNC_VIA_CMD can override the default tunnel command of
/usr/bin/ssh -f -L "$L":"$H":"$R" "$G" sleep 20. The tunnel
command is executed with the environment variables H, L, H, R,
and G taken the values of the local port number, the remote
host, the port number on the remote host, and the gateway
machine respectively.
Enough with textbook explanation.

Here is an example:
1) vncviewer -via REMOTE-HOST :1 (there is a spce in front of :1)
2) Type your ssh password
3) Type your vnc password
Thomas
ps. For VNC 101, see my article at:
http://fedoranews.org/tchung/vnc/