OK, to give a summary:
You have to choose between three solutions:
1) NXServer - NXClient
2) VNC-Server - VNC-Client
I'll summarize these two approaches:
1) To get a running system, you'll have to install the debian packages free for download from http://www.nomachine.com/download.php
. For your "server" you need nxclient, nxnode and nxserver packages in this order to install. Nothing else to do on your server.
If you want to connect from a windows client, you need to install nxclient for windows, also available at given link. If you don't have administrator rights, which are required for installing, you can also copy the program files from an already installed system. If you don't have these files, I can send you via email. If you have these files, you can connect your running server via the ssh-port 20. You said you have already a working ssh connection to your server, so you don't need any additional port to open, the ssh port forwards the request automatically to the running server application, fully transparent, you won't notice.
2) You install vncserver on your "server" (your pc at home) and configure it to your requirements. In addition, as VNC uses another port (I think 5900) you'll have to forward this port on your router, if exists, and open this port on your firewall (if exists). Then, you can connect this vnc-server from work, if you have vncviewer (a vnc-client) installed on your pc at work. As nice gimmick you can install a packet which let you access your vnc-server via a java-enabled web browser, so you don't need to have a vnc-client running on your pc at work. Nice for you, but it's unsafe as vnc doesn't encrypt your traffic, so your login-password will be transported via your work's LAN and the internet in plaintext.
More contra: VNC isn't performant as NX. Don't ask e why, but the NX-protocoll is much more efficient.
3) Cygwin just emulates a UNIX/Linux environment on your windows client. Within this environment you can connect your private pc via ssh as usual, but in addition you can connect with 'ssh -X' which results in a X11-forwarding, which means all applications started in the ssh-session will open on your client at work. If you call 'konqueror' it will open on your windows client. But this causes a lot of traffic, therefore it is quite slow, even with broadband internet.
I have been walking the same road you're on, and in my believe NX is the best way to solve your problem. Now the decision is on you, this is just my oppinion. If you ask jschiwal he will argue ssh -X is the best, yanik maybe will argue for VNC. Thats nice in linux: There are different ways of solving a given problem. You have to decide which solution fits best your specific problem.
Hope this can help you