Reverse SSH tunnel monitor
wikipedia's comparison of ssh clients has columns for tunnelling, SOCKS etc. may help you find something suitable
Use plink from PuTTY and run in a batch file. When connection really dies, plink will exit, which means that you can run plink in a loop.
Like this:
:: This is a batch file. Save with file name: plink_forever.bat :restart plink saved_session_name goto restart
And finally wrap that with srvany to get it to start on logon.
Or maybe easier: put the .bat in windows scheduler and set to run once on every boot.
Docs: http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html