Having used both iOS and Android extensively, I find myself teetering back and forth once I grow tired of one platform. If were to make a few generalities regarding both platforms, it would be thus:
1) iOS is simpler, requires less maintenance, and is consistently fast and responsive in its latest devices. Various devices running iOS (iPhone, iPad, Mac's, etc) all work well together because of Apple's ecosystem. Apple is committed to updates, and no carrier involvement means they are hassle-free and normally without delay. The development community is vigorous and customers are at ease when making purchases through iOS devices. The glass on the iPhone 4(S) hardware may be easily broken, but their industrial design is unequaled.
2) Android (and specifically ICS) is much more customizable, supports many more devices, and has become commoditized. Even with its recent improvements, it's still a geeks OS and a hackers paradise. While the general public may successfully use an Android phone, they likely will not know (and may not even want) to customize the phone. But those of us who like to tinker are drawn to the OS in a big way!
There are so many variables when it comes to recommending a phone. I think those migrating to their first Smartphone who have little technical proficiency should definitely get an iPhone. The tech savvy and tinkerers will likely gravitate more toward Android. However, carrier choice also comes into play. If the person is in a Verizon and is in an LTE area, then I'd definitely recommend an Android LTE phone. I had the iPhone 4 on Verizon and it was very slow on 3G. Same thing on Sprint, maybe even worse from many accounts. On AT&T, I think the iPhone is a much better choice given its HSPA support.