A big issue is Android phone manufacturers pump out all different "levels" of phones to reach as many people as possible. Apple makes one phone (two or three if you wanna get picky) and reaches as many people as possible with that.
In other words with Android you have: HTC, Motorola, Samsung each producing 5+ models per year resulting in 15+ different Android phones for a current year. When my HTC EVO 4G was brand new, it was $200 but I could have purchased the HTC Hero for less. However, I knew that in a year or so, that Hero would be so old and out-dated that it wouldn't be worth my time and money. I forked over the extra cash knowing I was buying a phone that would live much longer.
With Apple you have one. They release roughly one phone per year. If you wan an "Apple phone" you buy the most recent or maybe a version behind, but really, who's buying the iPhone 4 right now when you can get the 4s?
The problem people get into is they buy Android phones that are already on their way out. The EVO is still available from Sprint, but there is no way I would buy that now. It's substantially cheaper than any other Android phone Sprint offers (maybe with the exception of a few free with contract options) but why would I buy a phone that's going on two years old?
Android manufacturers need to step up their game and stop pumping out as many different phones as they can. Focus that "creative" energy into developing a couple powerful and sharp phones per year. I've had no issues with my HTC phone, but with how fragmented the HTC line-up is currently, I don't think I even know what the "best" available phone they offer is... I'll likely be going to the Galaxy Nexus assuming it comes to Sprint.