There are two fundamental dichotomies that hide under this argument, and they've been going on for years, if not decades.
First, there's the disconnect between large business and small business. Second, there's the disconnect between what people have previously been paid (or their peers have), and what they are actually worth. This is coming from a guy who has hired 5 software developers so far this year, and has 2 slots still available...
A lot of developers are looking at what happens at Google and Microsoft (aside from the layoffs...), and try to use that as a standard when they apply for a position at a 50-person shop in the midwest. This creates an expectation disconnect where someone gets an offer for $65k, but won't take it because they've been convinced by the Internet, their Career Planning & Placement department, or the job postings on career boards, that their skills are worth $90k.
This is an "expectation shortage", and results when there are not enough candidates willing to take the positions that ACTUALLY EXIST. It's all well and good to say that employers are under-paying developers, and looking for cheap labor. But the market does set rates, and the fact is that most software projects away from the coasts just don't support paying developers $120k/year - at least not sustainably.
Please go back to Econ 101. If there are not enough candidates willing to take positions that actually exist it means you're not offering enough money. Period. Again, econ 101. You're correct that the market does set rates - apparently higher than what your company is willing to pay.
The irony of this is that I see this stuff all the time. I'm an independent software developer and I can't tell you how many companies like yours I've worked for at a rate dramatically higher than the numbers you're quoting.
My favorite story in this line was in the 90s, when I first started. In the early 90s when I had a few years of experience I sent a resume and cover letter to a Fortune 100 company in a town near mine and promptly received a rejection letter. At the time, I would have been happy with $30K/year - more than I was making at the university at that time.
Fast forward 5 years. I'm doing contract work at the same Fortune 100 company in the same location. This time HR was skipped (I was a contractor) and I was making 4 times what I would have settled for 5 years earlier.
All I can tell you is that markets work and they work well. Small company owners hate it when the IT guy makes more than they do, but the right IT guy will pay for himself and then some. I always pay for myself when I put a program together. I mean that. There has to be a cost/benefit analysis. Do that with your positions, too.