You claim cross-platform apps, but then you have two development packages. Mono for iOS and Mono for Android. If I develop on Mono for iOS can I take the exact same code and plop it down on the Android version?
I'm using MonoTouch and Mono for Android for some game development right now. My per-platform projects are five to six classes apiece (all but one pushed into my IoC container by the last one), and everything else is shared. Obviously, for a non-game application, you'll have more, but they'll be mostly UI-based.
Some very useful practices to get good code re-use are described in the book "Professional Cross-Platform Mobile Development in C#" by Olson et al.