I've tried a variety of tools over the years and always end up going back to a low tech approach: spreadsheets. I set up my credit cards to email me after every transaction, which I then manually copy over to my spreadsheet with additional category information. Pivot tables give me a breakdown by category / month.
The added friction of having to manually copy everything over is a nice incentive to buy less stuff.