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).