If the best developer for the job happens to be in Manhattan or SF, s/he won't take a job paying Detroit or Wichita salaries.
If they do produce enough to be worth $150,000, why pay them less just because they live in Wichita? Supply and demand, sure, but it just seems odd to me to explicitly say that you're paying less if someone lives outside of a major metropolitan area. I prefer to be (or think that I am) paid based on the value I produce (value pricing) rather than what it costs to keep a roof over my head (cost pricing). Whether or not this is the case also influences my understanding of how a company thinks about me.