Mono works very well for creating WinForms applications that work on Windows and Linux. You can also use GTK if you prefer (broadly speaking I find WinForm UI's look slightly better under Windows, GTK interfaces look slightly better under Linux though depending on your app there may be little to know difference).
The Web Services implementation is also excellent (better than Microsoft's implementation in IIS, in fact) and works cross platform on both Windows, Linux and Mac OS.
However, if this is the road you want to go down you will have to build your project with Mono in mind. .NET projects created in Visual Studio will likely not run under Mono without (possibly significant) modification as not all .NET libraries are implemented - however Mono code will work just fine in Visual Studio (assuming they don't invoke any Mono specific libraries - but it's clear when your doing that as they are in the Mono.* namespace.).
Mono command line applications work just fine in Mac OS too, but the WinForms implementation on Mac OS is limited so if Mac OS is a consideration you are better off creating a native GUI in XCode and wiring it up to a C# backend as (unlike on Windows and Linux) Mono's WinForms implementation on Mac OS is not production quality.
I strongly recommend you check out Delphi Prism if you you are interested in creating cross platform (Win/Linux/Mac OS) apps in Visual Studio. There are other options (MonoDevelop IDE, Eclipse, TextMate) but it's easy to get to grips with, although not free.
Note: Contrary to what the name may suggest Delphi Prism allows you to write Mono apps in C#, not just using Delphi. It also makes wiring up Mono apps to Mac OS GUI's easier, but porting to Mac OS still requires a fair bit of extra effort (but not nearly as much as porting to ObjC!).
Lastly, this is isn't what you asked, but may be of interested to you: You could also consider using something like REALBasic to create the GUI and invoke bundled apps in Mono in the background (depending on what sort of app you are working on, and if you can't stomach using Basic in RB).