I have some trouble setting up Tramp with EmacsW32 and cygwin. I have configured emacs to use cygwin as shell using w32shell. I also set the HOME enviromental variable to c:
Nowadays Cygwin come with emacs-w32 so you don't need to start X server.
I recommend to start it by:
run emacs-w32
run emacsclient-w32 -a "" %FILE_OR_DIR%
Because it is Cygwin Emacs with just native Windows GUI it works well with TRAMP for sshing to Linux hosts.
You can check my script http://hg.defun.work/utils/file/tip/emacs/e.bat as a quick file opener.
UPDATE With modern Windows and UAC it can be better to run Cygwin Emacs as:
cygstart --action=runas run emacs-w32