I use Xamarin for personal projects, and it's been working quite well so far. They're pretty good about exposing native UIs so you get native looking applications instead of the ugly (in my opinion) PhoneGap like apps. Plus, C# feels like it was made for mobile apps. However, there are downsides...trying to do anything that leverages many sensors on the device gets tricky, and they're isn't as much support available on StackOverflow and whatnot. I think it is the best cross platform app solution out now though.