I know this feeling well of always wanting to upgrade! It can be torture. I am a perfectionist in general, so this plays right into my weakness.
My first line of defense is not to settle unless absolutely necessary. I will settle if I have a pressing need for something. This is pretty rare--it would most likely be some kind of special function or situation out of the ordinary.
The second reason I would settle for something is if I have looked and looked, generally for at least a couple of years, for something and just cannot find exactly what I want. I will then settle IF the price is right AND I am convinced that I will wear the item quite a bit (i.e., the item will be practical).
Once I find what I am looking for, I buy it and enjoy it...and don't allow myself to look for better versions! That is where I can really get into trouble--if I start trying to outdo my great purchase. Let's face it--you can almost always find something better (better quality, better fit, better color) if you keep looking. So I make a conscious effort to stop looking at similar items once I've bought "the one." (And as others have pointed out, asking whether you are willing to stop looking for item X once you have bought the item in question is a good way to determine whether it is indeed "the one.")
I recently bought a faux leather jacket from Express that is about 80% what I want. I settled because I have been looking for a leather jacket for three years now and cannot find what I'm looking for. This one was on sale for $80, and the quality and fit are good. In fact, the fit is amazing, which is what is lacking in all the other leather jackets I've tried. There are a few stylistic elements about it that I'm not excited about, which was my only reservation. I will continue to look for the perfect leather jacket, but in the meantime I will likely get $80 worth out of this jacket, as I have very few jackets.