I've been through this on both sides, working for the outsourcer and the outsourcee (as a US citizen for US companies.) What I've seen happen in most instances of worker replacement is this -- CIO signs a huge outsourcing deal with Tata, Infosys, CSC, IBM, HP, Xerox, HCL or one of the other huge consulting companies. This company gets a fixed price per year to deliver the same services the customer's IT department delivered, and this price is usually significantly less than they previously paid for IT employees. (We'll ignore time and materials, change orders, rework, etc. etc. that push the price back up eventually.) Because the outsourcing company has to make a profit on the deal, their task is to provide the minimum service required to avoid contract cancellation, and drive the cheapest cost possible to make it happen. Usually, about 10% of the IT department remains with the company, mostly the business analysts, project managers and other touchy-feely roles that can't be easily done remotely. Some percentage is laid off immediately, and the balance transfers over to the outsourcer. Over time, these workers begin being replaced by H-1Bs or offshore labor because of cost pressures. H-1B labor is brought in to fill roles that absolutely can't be done from some call center environment, and the remaining ones (day to day administration, help desk, etc.) get sent offshore or into a sort of sweatshop "sysadmin farm." This is directly due to cost pressure, and service suffers because of it.
Companies might "create jobs" but they're generally not IT jobs in environments like this. I'm very lucky and now have a system architect level job that I've earned through years of experience in the trenches. What I worry about is that these low level jobs that new grads learn the ropes on are getting harder to find. As it is, I'm often in the position of just telling an offshore team what to do. I don't think arrangements like this are sustainable because you're not building up the next generation of techies to take the high level jobs later on.
I don't know what's taught in MBA school, but I guarantee a good portion of it is telling them that numbers on a spreadsheet are the only data that deserves any weight. I've seen IT outsourcing fail to produce the desired results far more often than it has succeeded. If your company does anything with IT beyond keeping the lights on, you'll be disappointed with an outsourcing arrangement -- but the numbers don't lie, at least in the short term.
Here's what I'd like to see happen: IT and dev workers should create a professional organization similar to the AMA, Screen Actors' Guild. It would have to be anything but a "union" because techies have this individualist streak that prevents them from wanting to associate with others in that way. This organization would do what the AMA does -- limit the number of new entrants, lobby for laws to be passed that favor its members, and ensure professional standards. Low level tech work would be on an apprenticeship basis, which would allow people to learn from experienced folks rather than the hodgepodge of self-teaching, vendor certification, etc. High level engineers/architects would be professionals, with responsibilities similar to actual, real PEs. I know most people think they're super-special and would never dare to compare themselves to their peers, let alone associate with them. But this is the best long-term solution -- it keeps tech a well-paying career, ensures that we can bribe Congressmen the same way businesses do, etc.