There is another important point of outsourcing. If there is more competition here, in the US, then chances of outsourcing to India, China (where pay is substantially low) will also reduce. That might mean more jobs here, in the US.
Take Cognizant Technology solutions for example. I know a friend who works for the company. They are a US company (NJ based) but the majority of their life-sciences projects are outsourced to India office. They pay my friend one-thirds of what they charge the client for him in the contract. Him and about 5 other people who work here for the client, send work off-shore to India office to about 50 people. This model of outsourcing the majority work to India suits the client because the total costs about one-tenth of what they'd actually pay if everyone of those employees was hired here, in the US.
Not only is this model hurting jobs in the US, it is bad for the employees here well. For my friend, he has to work during the day, and then spend most of the night delegating tasks off-shore. He practically sleeps only over the weekend.
This might be a one-off example with this specific client only for Cognizant but I am aware that the profits from pay-scales are company-wide.