I've used Navigon and TomTom pretty extensively since they came out, so I can throw my two cents in again now that the iOS 4 versions are available and I have an iPhone 4.
When these apps first started showing up, Navigon was head and shoulders above TomTom. It was beating TomTom to the punch on just about every single feature (text-to-speech, iPod controls, traffic, etc). The only killer for Navigon was that it was basically unusable on a 3G because of all the resources it used.
Now that the iPhone 4 is out, resources aren't really an issue any more. However, I have to say that even on the iPhone 4, Navigon is STILL sluggish. The menus aren't, but the map is just painful to watch, especially when using Panorama 3D (a cool idea but really kind of pointless). It updates very slowly and occasionally freezes your position and then jumps ahead (particularly when it is preparing a voice instruction).
On the other hand, TomTom's map is incredibly smooth. The map updates constantly as you drive and your indicator passes roads almost exactly in sync with the real world. This is honestly even better than I expected on the iPhone 4.
In terms of features, Navigon and TomTom are pretty close at this point. TomTom still lacks a simple way of planning a multi-destination route, and Navigon is still missing a simple "avoid road X" feature (the "Block" option doesn't cut it). Navigon's menu is still a bit of a jumbled mess with everything on a single page, but I think I prefer it to TomTom's where it's at least 3 taps to get to just about every option. In terms of overall tweaking, TomTom wins as you can adjust almost everything imaginable.
I've found the maps in both Navigon and TomTom to be very accurate in my area. I haven't really seen any obvious differences in the two, although if you look at the AppStore reviews, plenty of people have issues with both maps. Navigon definitely has WAY more speed limit data than TomTom. It's not even close. I'm not sure if this is just the NavTeq data, or research on Navigon's part, but it is impressive. On the other hand, TomTom wins hands down for POI searching. Navigon for whatever reason makes you put in the exact city or town of the POI you are searching for. TomTom lets you search nearby and will gradually move away from you to find the POI. Google search is available in both, but I have never received a result in Navigon. It has worked very well in TomTom so far.
So anyways, on to the stuff that actually matters. Navigon now has MyRoutes while TomTom has had IQ Routes for a while. I didn't really notice a difference at first, but it's pretty obvious now that TomTom is far and away superior in this department. It's not that the routes selected by the two are completely different where one is obviously better than the other, but on most routes there are a couple of small differences where Navigon clearly isn't taking into account all of the information TomTom is. When comparing routes to the same destinations, Navigon's ETA is always incredibly optimistic.
Just to test this, I used both during a trip that I've made dozens of times. It's only about a 15 minute drive, but there are a lot of lights along the way, so taking back roads to avoid them is always a good idea. Navigon and TomTom both took back roads to get to the destination, and really the routes were almost identical aside from one different turn. However, Navigon said the trip would take 6 minutes; TomTom said it would take 14. I have no clue how Navigon made that estimate. Maybe if I was going 50 in a 35 the whole way and got to every single traffic light when it was green, it might take 6 minutes. I made a note of the ETA for both, and pulled into the parking lot of my destination at exactly the time TomTom predicted when I got in the car. Pretty impressive. Navigon adjusted its ETA along the way, but that's not really very helpful when planning the trip.
I knew that TomTom took more information into account than Navigon, but for this particular route, it was pretty glaring. Navigon must only use the speed limit of roads to determine routes and ETA, not the average speed, presence of traffic lights, etc. The one turn that was different in Navigon's route would have taken me to a busy intersection with a very long light. With no traffic and no light, this route would definitely be faster, but because the intersection is so busy, it would add time on. TomTom used the same back road that I have found as the best option in my experience. It doesn't seem like a big deal in this example, where a few minutes here and there is negligible, but on long trips where I'm trying to minimize delays, I don't know that I would trust Navigon's routing.
I did a few other tests on some longer trips (I didn't actually drive them, just did a route preview) and some of Navigon's decisions were really questionable. Generally, I have found that TomTom chooses the same routes that make sense to me and, if it doesn't, it selects a much better route that I never would have thought of. I have actually picked up a few awesome shortcuts over the year thanks to TomTom.
This issue factors into the traffic feature as well. I have to say that I really like Navigon's traffic implementation. I like being able to see nearby traffic whenever I want and I like that it gives a description of the incident. I also like that I can manually decide whether I want to avoid a particular incident on my route or not. That is, I can have Navigon automatically take care of it, or I can manually go in and pick the incidents I want to avoid. TomTom is more of a need-to-know implementation - if it affects your route, it will let you know, but it doesn't really give many details and you can't search for incidents. It will tell you if it finds a faster route and let you decide if you want to take it, but you can't specify which incidents to avoid.
(Note: Right now, TomTom's traffic is "broken". It works functionally in that it will find traffic and re-route you if necessary, but it doesn't actually show you what the incidents are when you tap the traffic button on the map. I assume that this will be fixed in an update).
However, in practice, I don't think I would ever use the manual incident avoidance. If I'm driving, I'd rather the software automatically find a better route anyways. Navigon and TomTom both do this well. Of course, Navigon suffers in this department because of the above issue - the routes it calculates just aren't as good as TomTom's. So it's great that it can find and avoid traffic, but is it really that great if the route it finds around it is poor?
The weird quirk with TomTom's traffic is that it only reports a traffic incident if it is causing congestion that is significantly worse than normal for that road at that time for that day. For example, say there is an accident on an interstate into a major city. If the incident is at 2PM on a Saturday, TomTom is going to let you know and probably find away around if it is faster. The traffic on this road at this time on this day normally wouldn't be this bad. However, if the same incident was at 8:30AM on a Monday, it may or may not report the incident since the congestion on this road is probably pretty bad at this time anyways. If the congestion is much worse than normal for rush hour, it will let you know, but if it is just typical rush hour delays, it's already taking this into account for your route.
On the other hand, Navigon doesn't factor any of this in, so when there's a traffic incident, suddenly it is drastically altering the ETA. If it's an accident with 10 miles of traffic, this could add 45 minutes onto Navigon's ETA, wheras it might only be 7 minutes for TomTom. Navigon wasn't factoring ANYTHING in, while TomTom already knew you were on a road with frequent congestion.
All in all, I have to say that TomTom is not only the best option on the iPhone, but is just a great option in general. I would feel comfortable pitting this against even the best stand-alone units. I really, really wanted Navigon to be the best. It was the first one I bought, and there are a lot of things about it that I like better than TomTom - the voice guidance, the map display, the speed limits, etc. But no matter how many times I compare, I keep going right back to TomTom. At the end of the day, the map might be pretty generic looking, the voice might be a little robotic, and the menu might be a little clunky, but the routing is unmatched and, let's face it, that's the whole point of a GPS navigator.