Apples SDK does not feature speed and heading information at this time, although you could calculate it anyway. For example, PosiMotions G-Spot does this. Badly. But PosiMotion isn't the one to blame. I've done some experiments with the SDK myself, and location updates seem to be rather "jumpy".
Anyway, back to topic. Both J2ME (JSR 179) and Symbian feature classes that have functions like
heading(). Neither of those are available in iPhone OS 2.0.
I can't tell if you really would need those functions to enable turn-by-turn navigation, but given the fact that both J2ME and Symbian have the ability to provide this data, it might be at least a good hint.
Just a last word on TomTom and their application that already runs on the iPhone. As far as I got it, first versions ran on the old iPhone which didn't have GPS at all. So in all likelihood they have built their own GPS receiver that could provide any data they needed, including heading and speed.
And, beside the fact that they might be missing crucial location API features, they also have to port their app from 1.x to 2.x!
I'll have another close look at all the location APIs, maybe also on Blackberry, as soon as 2.1 is released. At this time, unfortunately, it is just available to developers that already have been approved to publish their applications trough AppStore, which I am not.