Pro: lowers costs so encourages the industry to say here.Both of these arguments are focused on the USA, and ignore what this program does in other countries (notably, India). I think that the H-1B visa program is benefitial because it undermines serious competition from the Indian or Chinese software industries, by cutting out their best people. To see this in action, compare the software industry to the auto industry:
Con: increases labor supply so hurts employee salary.
American used to be the world leader in car production. However in the mid-to-late 1970s, and early 1980s car production moved overseas. The results for the American auto industry were bad, but the results for American auto workers were worse. Huge numbers were laid off, etc. (See "Rodger and Me" for the impact in just one city.)
However, this has not happened to the American software industry. Even though software does not require big factories, and is much easier to move overseas. India has more English speaking computer science graduates than the US, yet Silicon Valley is more dominant in software, than Detroit ever was to cars.
I think it is the H-1B visa program which is protecting Silicon Valley, not by lowering salaries, but by skimming off the best and the brightest Indian software engineers to come here. The result is that India can not get a critical mass of local software startups. Software startups require a couple of first rate engineers to get going. Most of the work can be done by any engineer, but the kernel idea requires a great engineer. By enticing these engineers to come to America, we have hobbled the local Indian software industry (as a competitor). They still have lots of software engineers, and can do lots of software development work, but as a incubator of software startups, they're way behind.
The result is that the current "good times" of the American software industry (and American software engineers) will last longer. As a software engineer, this is far more valuable to me, than the slight lowering of salaries caused by engineers in this country on H1-B visas.
On the other hand, I'm not in favor of raising the number of H-1B visa issued each year. The current number is doing a fine job in hobbling other country's software deveopment infrastructure, so I don't see any need to raise it.
If you work for a startup, you know the drill: you get good money, but the big payoff is in going public. Even without dot-com madness, going public can double or quadruple your salery for the time you work for the startup. Going public depends on many things, of course, but good engineers are key. If you coworkers are the best around, you chances of successfully going public are much bigger.
H-1B visas are very helpful for such an engineer, because it means that my start up can hire the best programmers in the world, and set them to work creating the best product possible, and therefore raising the chances that the startup will go public. That puts money in my pocket.
Some people think I'm arguing that H-1B visa holders are better programmers than Americans. What I am arguing is that H-1B visas vastly extend the pool of available engineers, and a larger pool means more, better engineers. And better engineers increase a company's chance of going public, and that puts money in my pocket.