I did a Dual Sport trip in Peru with Inca Moto...flew down, bikes, guides, etc. provided. The guide prefered XR600's (air cooled), while most of rode XR400's, which were pretty much perfect for 1000 miles of desert, mountain and cloud forest riding.
I asked about his choice of bikes for the tour and he said that "Air Cooled" was thing he looked for first, as there is that much less to worry about breaking / repairing. The 600's became 650's and went from air cooled to water cooled, so he was keeping his old steed instead of upgrading.
That said, I've been to Cabo and back on a KLR650 and had zero problems (slime did it's job on a cactus thorn). Though, once again, it ain't the most comfortable bike to load up. Since that trip, I bought a KTM 950 Adv for an Alaska trip (I'm supposed to be gone right now, but the economy says otherwise). With 34k miles, I have had no problems with it and it does a very good job offroad, especially compared to the KLR. It's bigger, but you only notice that on really slow, steep areas.
I think the BMW would be the best bet overall. It's air cooled, they have an excellent network for getting parts to BFE ASAP, and they have a billion accessories to meet your every need. On the other hand, don't make it look too nice, because you won't get the "poor guy on the m-cycle" sympathy, from the locals, that a KLR will muster.
As far as the trip. Pack only the necessities (tools and basic clothing) and carry as many common wear items as you can (levers,sprockets,chain,spark plugs,brake pads,bolts & nuts, etc). You can buy clothes as you go, so don't waste space with a lot of them. Wear old clothes and use them as rags when you have to work on the bike...then get new clothes You'll blend in better, and they are cheap to boot.
Stay in smaller towns if you can. Cities are full of criminals, especially if the people are exposed to "rich tourists" on a regular basis. People in small towns / villages are friendly and usually curious why you are travelling on a m-cycle. They are eager to offer assistance, too.
Do plan ahead, somewhat, avoiding the potential bad areas (cities). And do have the numbers to the U.S. Embassy in each country. Another trick is to write down your credit card numbers in a code that only you understand (offset #'s by 1 or something), with their Int'l Customer Service toll free number. That way if your actual cards are stolen, they can manually enter the number and you can have a place to stay, buy parts, etc.
Also, cash is king in small vilages. In Mexico, people in the smaller towns would not take bills if they had ANY rips or tears on them, so try to get "good looking" money, and stash it in a few different places in case you get jacked.
Have fun.