Currently, there is no silver bullet, unfortunately, AFAIK. There are a lot of systems for creating apps which run on most systems, and some of them are great, some are not, and most of them of course have at least a few shortcomings. HTML5 for example doesn't feel native at all and runs too slow on some devices/operating systems. I've heard Mono/Xamarin is really nice, but I've heaven't tried it out myself yet. Same for Libgdx, it looks very promising. Most of these packages are still very young, so time will show.
For developing our own product [CopperCube, if you are interested ] which needs to create apps running on Android, Windows, Mac and HTML5/WebGL, we manually ported the code to each platform. If you are writing nice, compact and portable code, it isn't that much work, surprisingly.