If you really want a quality GUI desktop application you're going to have to shell out some cash. Right now there are two leading options on the Mac OS X platform:
Omnifocus is a personal task manager put out by the OmniGroup. It was developed with the GTD methodology in mind, so projects and next actions can also be assigned specific contexts. A global hotkey can be used to capture items to your inbox from any application; later you process these items into projects and actions. OmniFocus can do all of the things you listed in the question, and is notable for it's powerful filtering capabilities. (OmniFocus calls these Perspectives and it is a very powerful feature that Things mostly lacks).
Be prepared to invest a few days learning the program and refining your workflow because all the fine-grained control OmniFocus gives you means there are a lot of knobs to pull and buttons to push. Until you get your workflow figured out there is a great temptation to spend all your time fiddling with the program instead of actually getting things done.
Here's one guy's explanation (with screenshots!) of how OmniFocus makes him a more productive worker.
There is a paid iPhone application for syncing your data across to a mobile device.
Things by Culture Code. This app first came out in 2009 and got a lot of good press, especially for it's slick interface. I only used the trial briefly and found it frustrating that I couldn't enter due dates on the date picker without pointing-and-clicking, although they may have fixed this since I used it back in 2009. Many people swear by Things and say that it's relative simplicity is a strength over OmniFocus.
However, Cultured Code has taken fire more recently for the sluggish development cycle of their iPhone app, so you may want to look into the status on that if mobile syncing is important to you. At one point syncing was completely broken, and they had a lot of angry customers on their hands. Draw your own conclusions.
Check out the free trials
Both of these apps have free trials, so you should download them and make your own decision. I know that if I were choosing a GUI app today OmniFocus would be my choice because of the more fine-grained control it provides. But if you want a simpler and prettier interface, Things might be the way to go.
Or you may find, as I did, that even the best GUI app will never compare to a text-based design for portability and ease of use. In that case, I second the suggestions of others that you look at open source projects like Emacs Org-Mode and Taskwarrior.