Android is the one that needs to catch up. For general use (aka 95%+ of the people out there), Android is absolute garbage. Honeycomb still is lacking and even more confusing to use that before. And Gingerbread doesn't bring that much to the table.
There are many great features in Android, don't get me wrong. But the whole experience as a whole, iOS is just better. There are many high quality applications, both free and paid that only exist on iOS. And the experience is virtually identical from iPod touch to iPhone to iPad. On Android, the user experience is fragmented between different form factors and manufacturers. Samsung, Motorola, HTC, Sony and LG all have their own unique UI layers.
Android works well for geeks because we understand it better. We know how to get help or find fixes for problems we face. Most people aren't geeks. And that is where Android shows its weakness. When I say Android, people don't understand me. They say I want the Droid or the Galaxy. It's that fragmented. For people that don't want to bother with stability, performance, modifications, customizations and etc. the iPhone is top dog. It's just a pick up and use mindset. Very minimal learning involved. Android is the complete opposite.
In conclusion, each OS has it's weaknesses and strengths. iOS and Android are both good at some things but suck at others. But for the general masses, I suggest iPhone simply because it's got both excellent software and hardware and top notch customer service.