It better have both. Android is bringing serious competition this year with the Droid Incredible and Sprint Evo and for the first time, iPhone needs to play catchup with hardware and software features.
Gimped tethering, bluetooth (ipod control ARGH!), carrier choice, Flash support, camera flash, call quality, camera/video resolution, display resolution, speakerphone quality, HDMI, singletasking (even the new mutitasking looks klunky compared to how Android and Pre do it), replaceable batteries, FM, and the lack of OTA syncing and updates is really making my iPhone 3GS hardware look like a dinosaur.
The App Store and SDK quality are really the lifeblood of iPhone right now.