I use Excel for my Next Action and Projects lists.
I have columns for task name, context, project, etc. I also have a column to indicate which type of list each item is part of - the values in this column are 'a' for Action items (next actions), 'p' for Project items (i.e. tasks that belong to a project and are not yet NAs), and 'w' for Waiting items. So when I finish an NA, I filter by the project of that task and see if there's a new NA waiting. To change the task from a project item to an NA, I just change that column from 'p' to 'a'.
Excel's List Wizard is very handy for slicing and dicing my list. I can filter by one or more columns, sort by whichever column suits, etc. It makes it easy to review everything one project at a time, or cut the list down to just my NAs, or concentrate on a single Context.
I also have a Date column. This is handy when I have NAs that need to be done by a certain date - it keeps the deadline in front of me, in my NA list. I also use this column to add dates to Waiting items. When I'm doing a review, I can sort by this column and see what things I'm waiting on and expect to come in this week. I can also ignore things that I'm not expecting for some time yet. Overdue items become obvious, and I create an NA to find out why I'm still waiting on that item.