Just about any CMS can be run on Windows these days. A good starting point might be CMS Matrix.
I remember a while back PHP support on IIS got significantly better, so now there's no need to run Apache to have good PHP support on a Windows server. ASP.NET support is still strong, as well. MySQL and PostgreSQL also run just fine on Windows, and between MySQL, Postgres, and MSSQL, you should be able to support any off-the-shelf CMS. And any good CMS would allow you to theme it anyway you want - just take a look at various Drupal, WordPress, and Joomla! powered sites to see what people have done.
So, in short: any CMS can be run on Windows now. I've been involved with the deployment of a number of CMSes, but I would need to know more about your requirements to actually suggest a specific one. If you want to test, try them all. WordPress and Drupal are solid PHP based CMSes. The only ASP.NET CMS that I've deployed was .NET Nuke. And if you want to build your own, there are lots of good frameworks for every language.
So the specific questions to ask:
- What languages are your developers familiar with? If you want to extend or customize, you probably are going to want to use a tool built with languages your developers already know to reduce the learning curve.
- What database backend are you running? The major block to running a given CMS is the database support that is provided. Although if you are up for extending or (in some cases) making core modifications, you can support any DB.
- How much are you willing to pay? A CMS can run from FOSS software to hundreds of dollars, with some even offering subscription services.
- What features do you need out-of-the-box? Although most CMSes are extensible, when you upgrade, you risk breaking extensions. You probably want certain features to be native to the CMS so that when you upgrade, you don't lose those features.