Why not just expand the number of qualified people to which we give green cards? Admit that if you qualify for a H1-B visa, you should be eligible for a green card. This eliminates H1-B visa abuses, protects the H1-B applicant from abuse, and most importantly, allows skilled people to come to this country. Some of them will undoubtedly start their own companies.
We might have a serious illegal immigration problem in this country, but admitting skilled immigrants is certainly something we should want to encourage.