They are brought to the US, given around 40% less, to work jobs that could easily be worked by Americans. This helps the company's bottom line, and that's about it. But if you go and look at the tech companies, they don't really need help with that, many of those hiring the H1Bs have billions of dollars that they are sitting on. They could easily pay for American workers, they just don't want to. In a country of over 300 million people, you don't need more mediocre talent from India to work at 40% below average wage.
And India needs its talent as well. It's a backwater country that needs a lot of development. If those developers stay at home, maybe they can help develop the country. It badly needs it.
So to sum it up, America does not need more talent, it has plenty of its own in a population of 300 million people. The companies employing these workers are not employing them for their talent, they are employing them for price savings. They could afford to pay more. And Americans need more jobs, as the unemployment rate currently is astronomically high. Indians should stay in India, the country needs it.
If these people are so above average, then the companies should be willing to compensate them 40% more for their work. And so create a separate program for that. Which makes companies pay more for highly sought after talent, as compared to the locals. Let's see how they respond then.