I read an essay a couple of weeks ago (the bookmark is on another computer or I'd post the link) whose premise was that NAFTA had ruined the Mexican economy. It looked good in the short term, so the agricultural workers left their farms for the factories, but then the factories left for China.
Eventually we're going to have to find a way to fix Mexico. The short (but wrong) answer is to invade. What can we do to help create a middle class there so that people have a shot at a decent life and don't have to come here to keep from starving?
But first, BUILD THE FENCE!
You're right but that sure is a hard problem to solve since Mexico is so corrupt and the ruling families are very entrenched. This sounds a little crazy, but a socialist revolution (not a Chavez or Castro but more like a Canadian system) in Mexico might not be a bad first step to rid the country of the ruling families. A capitalistic system will never work in that country as long as the ruling class in that country is still in power and the people are far too uneducated and gullible to ever do anything about it.
NAFTA was supposed to help the situation by creating new industries in Mexico and I actually was in favor of it. As you pointed out, it NAFTA may have had it good points but it has outlived it's usefulness now.
As you also pointed out, a wall is the best first step. That way Mexico's problems can be contained and can therefore be more easily solved. If they want to keep the ruling european families in power then at least they will have to endure the consequences by living there.