Das meiste wurde schon gesagt.
Garantien gibt es nicht, und selbst der Mono Migration Analyzer der auf problematische
API's hinweist ist nur eine Hilfestellung und kein Garant.
Auf einem Mac testen ist unentbehrlich, und wenn man die Cyclen kurz halten will, ist es sogar größtenteils empfehlenswert, direkt auf dem Mac zu entwickeln (dank Mono und MonoDevelop kein Problem). Der Mac Mini als günstigster Einstieg wurde ja schon genannt.
Ich würde aber aus diversen Gründen die in anderen Threads schon angesprochen wurden davon absehen, mit Windows Forms eine Applikation zu schreiben und die dann einfach auf dem Mac laufen zu lassen. Das geht zwar, aber das sieht hinterher echt Kacke aus und macht Probleme, weil einige Sachen nicht funktionieren (es gibt keine Messages und damit z.B. auch keine direkten Mouse-Events etc.). Auch gibt es keine mir bekannten
GUI-Komponenten die unter Mono laufen. WPF ist eh aussen vor. Meiner Meinung nach ist es besser, das
GUI für den Mac mit den MonoMac-Bindings (open source) zu erstellen, und damit dann native Mac-UI-Elemente zu verwenden, und das gleiche für Windows mit Windows Forms oder WPF zu machen.
Das heisst die Anwendung hat letztlich zwei
GUI's im Bauch und benutzt das jeweilige Native für die jeweilige Plattform.
Datenbank ist dank
ADO.NET und den jeweiligen Treibern der Datenbanken ein absoluter No-Brainer (wenn man auf zusätzliche Komponenten setzen will sei hier DevArt, formals Corelabs genannt, die sind wirklich tauglich, aber nicht unbedingt nötig).