I have worked with Xamarin. Here are the positives and negatives I have found:
Positives
- Easy to code, C# makes the job easier
- Performance won't be a concern
- Native UI
- Good IDE, much like Xcode and Visual Studio.
- Xamarin Debugger
- Xamarin SDK is free and open-source. Wiki
Negatives
- You need to know the API for each platform you want to target (iOS, Android, WP8). However, you do not need to know Objective-C or Java.
- Xamarin shares only a few things across platforms (things like databases and web services).
- You have to design the UI of each platform separately (this can be a blessing or a curse).