You can't really compare them. MonoCross is a crossplat MVC framework that you use on top of Xamarin's Monotouch/droid/etc. to increase your shared code. Xamarin allows you to write about the same code for multiple platforms, but it doesn't make it easier to share the same exact code. E.g http://components.xamarin.com/view/xamarin.mobile
The code looks similar across platforms, but it's not exactly, the same - you can't make one change and have it carry across to all platforms. Monocross brings you closer to a write-once for all platforms experience.
It's the better choice for a number of reasons when the scale of the application(s) increases a lot. It's a premium product that comes loaded with features you need when you're building something at a scale larger than independently developing a single application.
But I think the main differences you'll find, irrespective of scale, are a powerful designer/storyboard tool, Visual Studio integration, and the kind of support you'd expect to find from a paid product.
Unless I'm mistaken, MonoCross isn't a replacement for Xamarin (formerly Monotouch and Monodroid). It's a layer on top that abstracts the platforms differences. You'd still need a Xamarin.iOS and/or Xamarin.Android license to use it.
The code looks similar across platforms, but it's not exactly, the same - you can't make one change and have it carry across to all platforms. Monocross brings you closer to a write-once for all platforms experience.
A better comparison is Monocross v.s. MvvmCross