I've just spent hours trying to sort out exactly the same thing so that I can adminster my dad's computer when I'm not at home. I'm still not sure that I've got it 100% so I would appreciate comments from those more knowledgeable than I (ie: just about everyone). Having said that, this seems to work...
For security you want to tunnel the VNC connection through SSH so the first step is to set up an SSH server on your dad's computer. This is as easy as going to the Sharing pane of System Preferences and turning on Remote Access.
If your father's computer is on a home network behind a router then you have to set up port forwarding. Say if this is the case and I'll try and explain how to do this. Searching this forum for 'port forwarding' should also give you some ideas. However, for the moment i'm going to skip over this bit.
Assuming your father's computer is connected directly to the internet things get a bit simpler. The next thing you need to know is his IP address. This can be obtained by going to
http://www.whatismyip.com from your dad's computer.
Once you know his IP address open up the Terminal and type in: ssh -l dadsusername dadsIPaddress -L 5900:127.0.0.1:5900
(That's a lower case l after ssh - )
As I understand what this does is open an SSH connection to your dad's computer (at dadsIPaddress) logging on as your dad (-l dadsusername). The rest of it basically makes the VNC server think that it is on the same machine as the VNC client (I think). This explains it better than I:
http://www.uk.research.att.com/archive/vnc/sshvnc.html
Once you've typed all that in it asks you for your dad's password and then opens a connection. When the connection is up and running fire up the VNC client on your own machine and tell it to connect to 127.0.0.1 using display 0. If all is well then your dad's display should apperar on your screen.
One thing that I discovered today is that it doesn't seem possible to test this setup if the two computers are connected on a local network. This is probably blindingly obvious to those in the know but was a cause of much wasted time for me today.
At this stage I would like to reiterate that I would be most grateful if anyone who can clarify/explain things further. For instance there seems to be some way of using SSH with encrypted keys etc which seems to be a lot more secure than just using dad's normal password but I'm not sure what to do.