This is a tricky issue, simply because within our own country we have interests on both sides of the issue.
On the one hand, very few (if any) people like the idea of outsourcing, when ideally we would have an unemployment rate of 0%, and everyone of working age would be able to get a job capable of supporting at least one person.
On the other hand, many people tend to favor a quick payoff, as opposed to a long-term payoff. While bring all of the outsourced functions home to the US would give us more jobs, it would also drive prices up for many goods and services that we're accustomed to having a certain price-point. It also might drive some of the goods or services out of the reach of people who can now afford them due to the outsourcing of certain jobs (assembly, etc.).
Greed is a major factor as well, of course ... how many CEOs offer to lower their pay for the sake of American workers?
Last, but not least, is the necessary evil of capitalism - driving up values of shares in publicly traded companies, which is largely based on profits. In order to drive up profits, costs need to be lowered, and/or prices need to be raised. Raising prices may limit people's abilites to buy goods you're offering, so often times the safest way to increase profits is to simply lower costs. Also, often times the easy answer to this is outsourcing.
Don't get me wrong, I'm not happy about outsourcing, and I'm not trying to make a case for it here. I'm just illustrating how complex the issue is, and the fact that bringing these jobs home to America may cost us in a way many people aren't expecting.