Let's face it: We all have different needs when it comes to to-do lists. Some of us can get by with simply editing a text file; others need priorities and action-items and project labels.
But chances are good you're somewhere in the middle. And that means chances are good that Google's oft-overlooked Tasks web app can satisfy your needs. It supports basic hierarchical structure, allowing you to create sub-tasks for larger projects. It supports due dates for tasks, and provides a field to enter notes for each task. And it supports drag-and-drop reordering, which may not be as elegant as a priority system, but can serve the same purpose with limited fuss.
Trouble is, most of us need to be able to access a to-do list without having to load up a web page. Luckily, with some free tools (and a Google account, natch), you can do just that -- and embed Tasks as an always-accessible drop-down window on your menu bar.