I run an NX server on my ubuntu work computer and use an NX client on my ubuntu home computer to work from home.

The problem with this set up is that I have to create a new X session whenever I do this-- I can't log into my existing locked session I have running at work.

This requires me to either log off at work before going home if I know I'm going to want to work from home, or, once I've created a new X session at home, going through in process explorer and killing trouble processes from the other X session.

So, is there a way using the NX Client to connect to an existing X session on a computer running NX server?

No one else mentioned x0vncserver which can be used to shadow any X11 session

NX (mentioned above) is another popular choice

Beware that shadowing an existing X11 display does little more than screenscraping and compressing the screen updates before sending them, so the performance of both NX and VNC shadowing will not be as good as native NX/VNC sessions... (which use much more advanced performance optimizations)

There is also the option of loading the vnc.so module into the X server, documentation is a bit scarce though and AFAIK you can't unload the module (whereas you can just kill nxagent/x0vncserver when not in use)

Xpra is good for moving individual apps around but cannot shadow an existing display.