Here's the GTD approach I've been following lately, which I'm very happy about. It's based in the tool Trello.
I have several boards (for personal stuff, for my main side-project, for work, for another project, and long-term goals). They all have four lists: Backlog, To Do, Doing, Done. Every Sunday, "Done" is archived into "Done (2012.04.08)" and I create a new, empty "Done" list. Then I bring tasks from the Backlog into To Do, in a way that everything in this list is what I plan to get done during the one-week sprint.
For projects I do with other people, we follow a similar approach, it's working great.
I wrote a toy script that parses the Trello JSON output into text format that I use for the weekly progress reports at my day job.
My productivity has overall improved. But, even more importantly, I feel less overwhelmed by all the different tasks I have in the pipeline.