The catch to this is that most companies do not know what they want.
BINGO!!! And that's why offshoring is ultimately going to not be the silver bullet that CEOs are expecting it to be. The fact is most programmers do a lot more than programming, they bring business knowledge, the ability to take vague or non-existant requirements and create business solutions to problems. This requires communications skills and the ability to understand just what the users are trying to accomplish. When you try to take that knowledge and try to pass it off to another programmer, a lot of information gets lost in the shuffle, no matter how well the specs are documented. In the end, they think they are saving money, but then what happens a year later when they have to scramble and find consultants at $100/hour to fix the problems that were created by the cheap programmers in the first place?? You get what you pay for.