The way I've solved this problem (which can be a struggle when I see something I want in a sale) is to list everything I want (depending on what it is like DVD's, CD's etc) and put aside £10 per month for them. I then select my most wanted item and wait until my funds have built up enough to buy it. This way I don't feel I'm missing out, but I no longer have to think about my choices until one of my items can be bought. Otherwise, I try and remove choices from my life i.e. when I have to buy a card for somebody, the first card I like I buy. I won't look at anything else. It's the same when I brought my glasses.
I also have lists for everything else, i.e. all the jobs I need to do at home, for each room. At work I use Outlook to organise everything by a flag system. I look at a job and give it a priority, then just work through them. It's a struggle though and I always feel overwhealmed at work because I can't control everthing.