As many others have said the Express versions of the Visual Studio products are free and are a good starting point. They do however not make it easy to do mixed language development. It is possible but unnecessarily complicated.
If that might be of concern then there is SharpDevelop. Although it doesn't have very good support for web development. Here is a comparison of features
SharpDevelop v Visual Studio Express[
^] and here is where you can
download it[
^].