Ok...
First of all, you have a few separate things going on.
1) at your end (the client end) you had a program using port 5900, hence using that port as the end point for your ssh tunnel didn't work, that is obviously why turning off the offending program allows it to work.
To work around it you can just set up the tunnel differently.
Code:
ssh 192.168.1.107 -f -L 5903:localhost:5900\
That tunnel should forward port 5900 on the server to 5903 on the local computer (hence avoiding the local conflict), you then run vncviewer connecting to port 5903 (i.e. vncdisplay :3) on the local computer and things should work.
Alternatively, you can set up the server to use a different port entirely (i.e. to use 5903 rather than 5900 at the server end). In your attempt to do this you used entirely the wrong option, the -display option is used to grab the X11 display you want to view remotely, not to select the vncport you want to use. You probably don't have 3 X displays on the remote server, and that is why it didn't execute at all. I think you need to use the -rfbport option to do that, but I'm not 100% sure.
Assuming you make that work, an ssh tunnel with 5903:localhost:5903 would be correct, or indeed whatever number you want locally (the first 59xx) provided it doesn't clash with local services, the remote port obviously must match the one you choose for the vncserver to run on.
Hope that helps
Bookmarks