Load balanced IIS. Should I use NLB, or linux-based reverse proxy, or something else?

At Stackoverflow we use HAProxy to balance against our Windows Server 2008 R2 IIS 7 web servers with great sucess. We love HAProxy and find it to be very flexible.

How much traffic are you talking about? Citrix offers a free version of their Netscaler load balancer as a virtual machine for ESX, Hyper-V, and XenServer. It is called Netscaler VPX Express and offers up to 5Mb of throughput for load balancing. It also includes a 10 user SSL VPN license as a remote access solution. I've been using it internally with great success.

Here's a recent blog post by Citrix that discusses the recent bump of the free VM from 1Mb to 5Mb: http://community.citrix.com/display/ocb/2011/02/28/NetScaler+VPX+Express+Sets+Your+Networks+(Even)+Free(-er+than+Before!)

I have used NLB for IIS webservices for years with good experience. Its not really a load balancer, more of a redundancy tool. The load is not shared intelligently between the servers but it is really really nice to be able to take down one server for upgrades and have everything running with full uptime. I do recommend you start with NLB and see if that is good enough for you. Its free and very simple after all.