The United States no longer has the manufacturing infrastructure to support large scale immigration. Lower working class Americans are competing with illegals for low wage jobs. Businesses, particularly agricultural companies, like this arrangement because it contains costs by keeping wages low. If they didn't have these illegals they would be forced to pay higher wages to demanding natives.
It's not that Americans won't work these jobs, its that they won't work these jobs for poverty level wages. These businesses know that the government will take up the slack by doling out benefits to unemployed Americans.
During the time of the pre-1965 immigrant boom the welfare system as we know it today did not exist. Immigrants who couldn’t make it went home. When an immigrant (legal or illegal) couldn't find employment, he returned to his native country. An illegal today receives support for their children regardless of their own legal status therefore providing an incentive to stay. The results are an exponentially growing population of low skilled workers who in turn will also have to compete with immigrants for employment.
Provide amnesty for illegal and you only increase the exiting burden on the tax payers. It's not as if by giving amnesty will allow them to come out of the shadows and seek better employment. The language and skill barrier stills exists and limits their employment options. Why would an employer who benefits from hiring illegals employ a newly amnestied person when they now have all the rights of an American citizen, such as, legal protection and unemployment benefits.