I doubt that I can just compile my Android app
It is right; You will not.
So, the background: the design philosophy of MonoTouch and Mono for Android is to bring the "core" of .NET and C # to iOS and Android, while revealing the main functions of each specific platform. While PhoneGap and Titanium have an abstract base platform (for "virtual recording", MonoTouch and Mono for Android do not contain platform abstractions and directly reveal the main types and elements of the platform.
As a result, MonoTouch programs use MonoTouch.UIKit.UIButton , which directly wraps the main CocoaTouch UIButton .
Similarly, Mono for Android programs will use Android.App.Activity , which directly wraps the underlying Android android.app.Activity .
Common to both platforms are the "main" namespaces and frame types that you will find on .NET, .NET CF, Silverlight, Windows Phone 7 and Mono: System , System.Collections.Generic , System.Linq (yes, Linq-to -Objects), System.Xml.Linq (yes, Linq-to-XML), System.IO , etc. Etc. For example, see Builds Included in Mono for Android .
So, can you use the existing Windows Mobile app as it is on Android? No, because Mono for Android does not provide System.Windows.Forms .
However, you will need to reorganize your existing code to follow the Model / View / Controller (or MVVM or ...) design pattern, diverting the user interface (View) so that you can replace it with various platforms, such as iOS UI with MonoTouch , WP7 UI with XAML, Android UI with Mono for Android, HTML interface with ASP.NET MVC, etc. etc. You will not be able to experience βwrite once, work anywhere,β but you will be able to provide the user with user interfaces that are appropriate for their chosen platform.
For example, see MIX11 Conference Applications , which share a common code base, while also providing interfaces for the platform for iOS, Android, and WP7.