I use SharpDevelop. For free, it's really awesome, but I do pretty simple things in C#. It's still in its infancy as far as I'm concerned, and is lacking a lot of features (like a proper menu designer). But it works pretty well. And it can be obtained for free (legally).