I would like to also add in to consider a wider view as well. When our company was in the middle of making this very decisions we ended up choosing .NET because I could reasonably cross-train and re-use my code base and employees from internal to external applications. The code-base was a huge consideration, if we would of chosen Java/Ruby/Python/??? for our web and then .NET/C++ (non .NET)/whatever, we would of had to duplicate tremendous amounts of code between our internal applications and our web-portal. Also having the possibility of reallocating an employee from web to internal or vice-versa to help out in a pinch seems like a good door to leave open (even though that employee would likely be less productive than normal, it would be a lot better than telling an employee to learn a new language and do something productive tomorrow).
We also threw in with .NET because it has all of Microsoft behind it, pushing it outward in every direction. I will throw a M$ rant just as quick and vicious as the next guy, but I will admit if you are looking to have a single solution for your servers, OS, database, application development, and web development and a common set of skills that will cross-over from one area to another, .NET is the only way to go. I know some people believe you can build Java applications that rival .NET windows apps, but I disagree. Java works good on the web but for application development it is too cumbersome, difficult, and slow to produce quality applications.
This was the best decision for us, however if you were only concerned about building a website and not having to balance internal and external projects, code reuse, etc. Java, Ruby, PHP, or another one of the languages/frameworks maybe a better solution.
Jason SeidellProgrammer/Analyst
Infinedi