I'm using gnucash at the moment for tracking my expenditure. It can be a little over the top at first, but after a month or two of playing around with it I think it's pretty good.
I started off with some basic accounts (credit card, current account, salary, groceries, petrol, insurance, entertainment, sundry and a few others) and have added in a few more as time has progressed. Withdrawals from the ATM just get charged to a sort of sundry account. If I know that I spent (say) €50 cash on dinner then it will get charged to "eating out" and not just get lost in the general cash expenditure. However, if I spend €2 on a newspaper it just shows up as general cash expenditure.
I now have a few months worth of transactions entered in and a reasonable idea of how much I spend on groceries, petrol, etc . . . per month.
When we went away on holidays, I charged everything that we spend directly on the holiday against a seperate holiday account so I know that going away for that week cost us (say) €1,500. Before, this would have been lost in a mix of ATM withdrawals, hotel charges, train fares, etc . . .
Now, when I go into my credit card account and enter (say) Maxol, it automatically knows that this is going to be charged to expenses:motor, and when I enter in Tesco it knows it will get charged to expenses:groceries. This speeds up entering in the details.
z
p.s. I forgot to add - this sort of categorisation would be easy enough for the banks to do and would add to the user experience. I think AMEX used to do something like this a long time ago on their statements - at least for airfares which they would list out separately.