I've been using VitaList, and the best part is that they have an API (JSON or XML). I made a small app that fills in the one thing Vitalist doesn't have, auto scheduling. I know there's calendars, but I like for some things to just show up in my todo at certain times of a month, or once every few months, or every other week and putting 'Do Laundry' on every friday in my calendar is no good. Calendars don't auto roll tasks onward too, and I might not do my laundry on Friday, but by fridays its time to do that in the upcoming few days, so a rolling todo is better. VitaList is iPhone friendly as well, so I get my todo to go.
Once I thought they had lost my data. Turns out if you change your password and log back in with your old password, you get some weird old data from I don't know when -- this resulted in my recreating about 75% of VitaList on a Friday, and then realized I had not lost my data and stopped. I'm keeping that code around, just in case they start charging for the API or something... :).
edit: one more thing, i find the view by context feature really handy - my contexts are "home" "work" "errands" - and being able to quickly group by that (or by project) is nice.