At the most basic level, www.brianmadden.com is running on Windows Server 2003 and IIS 6. I actually have two servers that are more-or-less identical, and I'm using Windows Network Load Balancing to split the load and ensure that one server is up if the other goes down.
I have two Dell Poweredge 1750 servers (dual 2.4Ghz Xeon, 2GB RAM). Each one is basically self-contained, and each has all the code for the web pages and SQL Server 2000 with a full copy of the site database. The two SQL Servers are configured for continously updating merge replication, so each has the same copy of the database at all times. I'm using folder replication to keep the web files synchronized between the two servers. This means I can lose either server at any time without affecting the availability of the site.
I wrote the application that powers the site myself, mainly because I couldn't find what I was looking for in other off-the-shelf apps. I wrote it in Dreamweaver MX 2004 using ASP 3.0. (I'm too busy to learn VB.NET at the moment!)
I'm also running Exchange 2003 in a virtual machine (via Microsoft Virtual Server 2004) on one of the servers.