C# is free: I use Visual Studio Express at home (both C# & C++) when I need to build a desktop app and there's nothing I've needed that it couldn't do.
I see the issue as really being about what kind of programming you want to do. If I'm writing a Windows desktop app, my choice will be C# simply because it's easy, available and I don't need to learn a new GUI library. But it's the last thing I'd consider for a Web project.
OK, not always the last thing. A week ago I did a quick experimental Web based interface for some hardware we build here at work. It was my first .ASP project and I was amazed at how trivial it was to make a .aspx page backed by C# connected to a COM object that talked to the motion controllers. Say what you will about Microsoft; they do make the go-path easy!