[Updated: 2009-12-11: I no longer recommend Shopper, as of version 5.0. This paid app started to display ads and other cluttering info. See my newer post for more info ]
I generally make a shopping list when I go out buying groceries (about once per week). I used to go nearly every oter day, and spent money on food I hoped I could eat (but usually couldn't) which turned into one big waste pile which didn't feel good, money and waste wise. I put myself on a 'shopping list diet' basically, not buying anything that's not on the list. I check the pantry and the fridge before I go out and note what I need to buy. I read somewhere that if it wasn't important enough to put on your list while checking pantry and fridge, it's certainly not important enough to buy in the store just because you see it.
I do stray from this a bit, sometimes, when in the store I remember I need to buy dog-cookies (not in my pantry, so I don't see that I need too) or better, when they're on sale. I want to have a good enough stash of dog-food and treats for my dog. So occasionally I will stray from the list a bit, however, in general, the list really works. I have basically cut my grocery spending by at least 40% (yes, I did overspent horribly on groceries for a while).
For my shopping list making I've used Shopper for iPhone since September last year (and I admit I've strayed from the list a lot until last month, nothing to do with the program). I love the way it works, though I have flirted with other programs in the meantime. See, what I missed was the option to set the price based on store (to see where I could get the best deal). Realising today I had never e-mailed them to tell them that, I went to the website and found an entire page about Shopper v3 with all the functions I missed.
Now I can't wait for it to come out. I'm sure I'll love it. I love Shopper v2 for its simplicity already. Can only get better... ;)