Decriminalizing all drugs in the US (with substantial effort spent on education, anti-addiction, treatment, etc.), should go a long way toward cutting off their revenue. Combine that with immigration reforms, and better governance in Mexico (which should be easier when the cartels can't bribe everyone in government), and it seems like things would get better. Not overnight, but over 5-10 years.