You should read the FAQ and follow all instructions carefully, especially if you're new to Unix. The APIs between the two are vastly different, and what appears to be a simple and unimportant difference can wind up biting you big time. The Cygwin library provides all the Unix stuff necessary for them to run on Windows. And, if you're a programmer or have Unix programmers working for you, they are no longer forced to choose to develop exclusively for Unix or Windows by a complicated porting process. Porting their Unix apps to Windows is greatly simplified.
Some weaknesses still exist, naturally.
Cygwin32 is not secure in a multi-user environment. The library is not multi-thread safe. Symlinks don't work on networked drives. Network related functions have some trouble due to differences between Unix and Windows sockets, although this is improving. So far, some pretty impressive Unix packages can compile and run under GNU-Win32, including ghostview, groff, ncurses, rcs, termcap, uucp, xfig, vim, tcsh, X11R6, Joe, Lynx, Mutt, Perl, Texinfo, bibtex, xdvi, autoconf and automake, and others.