Xamarin have two commercial products, Xamarin.iOS for iOS development and Xamarin.Android. The Xamarin frameworks allow you to write applications using C# and the .NET framework. For each platform Xamarin provide bindings to the native platform APIs. As a result Xamarin applications make use of the native UI for each mobile platform. Xamarin do not provide a Windows Phone product because the C# and .NET code used for Android and iOS development is directly portable to Windows Phone.
Xamarin applications share common business logic, written in C# and most often shared via Portable Class Libraries, however, the UI logic is specific to each platform. MvvmCross is a popular framework that adds data binding support to both Android and iOS for Xamarin applications. With this framework you can share view models as well as business logic, significantly increasing the amount of code that is shared across the target platforms.
To view the code and detailed build steps, see the github source.
MvvmCross Manifesto - It is useful to read this before developing since it gives a good idea of the framework's design principles.
MvvmCross Project Wiki - A detailed project wiki.
MvvmCross on Stackoverflow - A variety of questions and answers related to MvvmCross development on Stackoverflow.
MvvmCross on Twitter - Regularly updated with information about releases, features and links to articles.