The most obvious (but not simple) choice is OpenSSH server. You can download it's port for Windows from copSSH page. OpenSSH is free and relatively easy to configure (remember to read the manuals!!!). However, copSSH has big problems when run on Windows Server operating systems, and key-based authentication seems to not work at all.
Another option is take some commercial SSH or FTP server (ensure that they include support for SFTP). Internally we use Bitvise WinSSHD. VShell is another good server, however, it's much more expensive than Bitvise (and Bitvise has a free personal license).
We strongly discourage use of FreeSSHd, which has bugs in SSH protocol compliance, and those bugs can confuse you, making you think that it's SecureBlackbox that doesn't function properly.