Sometimes when VNC really isn’t working you need to restart it. A simple SSH can do this as follows:

sudo /Library/StartupItems/OSXvnc/OSXvnc stop
sudo /Library/StartupItems/OSXvnc/OSXvnc start