Cryptonote does provide the promise of real anonymity. Its just a question of how high of a mixin count does the software force on everyone. Also you have to do some other things like smart ring signature matching and an alternative to payment ID's. If we do all of this and force a mixin count of something like 6 on everyone than transactions would be quite expensive, however no one, not even the nsa, could ever figure out what the heck was going on inside of our network. If you just want to protect against blanket spying but not targeted spying against specific individuals than everyone using a mixin count of 2 or 3 would probably be plenty. So its a trade off, true anonymity is possible just expensive. As for gangsters in mexico, no problem, the software in its current form could probably protect you from that.
Any mixin greater than zero is enough to provide plausible deniability in the block chain, though larger mixins provide additional security by cripling the ability to rule out other parties as possible transactors.