There's an excellent review and comparison between the two, on StackOverflow: http://stackoverflow.com/questions/1482586/comparison-betwee...
For applications there are a couple of iOS/Android solutions such as Appcelerator or Phonegap
What platforms are your target - the "etc" you mention? Blackberry? Blackberry is still huge but by iPhone and Android standards they are hardly smartphones. How about WP7? Interesting but so far tiny.
Next question: what kind of app? If its games, you use C/C++ and OpenGL for Android and iPhone.
Personally, I use C# and manage core business logic libraries with platform-specific user interfaces in Silverlight, MonoTouch and MonoDroid. I have a client who wants Android and later Blackberry, so for that we do the Android version in "normal" java so we can share libs with Blackberry in the future.
I don't think there's a one size fits all. The ones that do (e.g. Flash, or HTML/javascript) end up looking or running like ass.