I've tried a lot of these apps and eventually settles on
Remember The Milk. The app is free but requires a $25/yr subscription to their web service. It may seem a lot of money, but the service has been running for quite a few years now and the iPhone app is only a recent addition. The advatnage of this option for me is the ability to access my todo list from any machine anywhere without the reliance on a locally stored database on my computer. Also the iPhone app itself I have found to be superior to the other offerings with functionality like search, gps "nearby" list (you can assign locations for each task), smart lists, customisable toolbar, push notifications, and much more.
I tried
OmniFocus, but found it too slow when starting the app and syncing. I also found it too bloated for my needs, especially on the desktop app.
Things I found to be too buggy, with long waits for fixes from the devs. Also I didn't like the reliance on manual local wifi syncing to keep the iPhone app up to date.
Pocket Informant is a great app with support that is second to none. However it relies on syncing with the Toodledo online task mgmt service which I just couldn't get to like however much I tried. But soon PI will be offering local syncing with apps such as Outlook & Things.
Appigo's
Todo is a very good app with functionality to sync with Remember The Milk, Toodledo or your own iCal app if you use a mac. I just personally prefer the official RTM app over this.
I've also tried a number of other "smaller" apps such as
IMExchange for syncing tasks from my exchange account,
Toodledo's own app,
FCTasks by Franklin Covey, and numerous others, but ultimately RTM provides the most efficient service for me.