There's almost a consensus about what's missing on the iPhone: support for 3G (or better), a GPS, a video capture feature, support for third-party applications, etc. These are the most obvious features, because we're used (or almost used) to having them on other phones.

The other day, I was playing with my father's brand new 16-GB iPod Touch. Just like the iPhone, you can use it to browse the Web using Safari. The difference with the iPhone is that you necessarily have to connect to a Wi-Fi network. You cannot connect to an EDGE network (i.e. to a mobile phone network). Anyway, I'm a fan of SlimServer. It's not the greatest piece of software I've ever seen, but I use it to listen to my music collection remotely, via the Internet, from at least four different locations. The rest of the time (maybe 5-10% of the time), I use my old first-generation iPod. So, quite naturally, I tried to connect to my PC, using the iPod Touch. Of course, it worked: I was able to browse my music collection, launch search queries, and so on. The only thing I couldn't do was actually listen to my music!

This is the number one feature I'd like to see on the iPhone and/or iPod Touch: support for music streaming via HTTP. After all, they have everything that's needed to do it. This shouldn't be too hard to implement...