I know that Mono is supposed to be a .NET implementation for Linux/Unix. But I don't see even close level of exhilaration that is currently around .NET (on Windows). What's wrong with Mono then?
According to the mono FAQ,
Does Mono work today?
Yes, Mono is used in many commercial and open source applications and is used by many companies.
The mono software page directly lists about 20 such links.
It's not so much about problems in Mono as it is about the time and effort to get a stable Mono production environment and verifying that your applications run correctly on it. Porting apps to mono is something I do commercially and demand has been growing even if it is happening slowly. Most of the work I get is the result of a third party requirement to make applications run in a particular environment (eg: the client uses only Suse/Redhat clusters and stipulates that they will only use some app if it will run on their existing platform). Some web apps are also optimised for Apache and Apache mods so they need to run on Mono in order to work at all. The cost benefits of running commercial software on Mono over MS are actually quite trivial when you look at TCO for hosted apps but there are some performance perks that make Mono more attractive.
Mono is best suited when you have a certain level of control wrt the deployment environment. Most linux distros now either include, or offer a version of mono, generally with gtk#... Ubuntu includes a handful of apps out of the box (F-Spot & Tomboy). Regarding web based applications, mono isn't near as xcopy/drag-drop capable as IIS7, but does have some advantages.
It really depends on what type of application you are wanting to write... If it's a desktop application, what kinds of external dependancies will it have? What sort of gui are you going to use? It's much more complex than the windows paradigm. Not to discourage you. I, personally think that mono is a great option, and many times can be supported with minimal additional effort over windows-only.
Mono works fairly well if you develop for it from the beginning. If you are porting an existing application, you may run into some issues which are usually resolvable. I have built two public-facing, high-traffic websites for my job using ASP.Net which run entirely in Mono. There has never been a show-stopper problem.
Yes, Mono doesn't receive much love from the open-source community, but it is great for people who love .Net and Linux.