To reach the Floating Islands of Perú and then proceed on to La Paz, Bolivia, I traveled from Cuzco to Juliaca by train and from Juliaca to Puno by minivan (it was possible to take the train all the way to Puno, but there was a two-hour layover in Juliaca and the drive by van from Juliaca to Puno took only 45 minutes). The train was quite comfortable (though the bathrooms were an open sewer, even by Peruvian standards). It is, however, a very long ride (some nine hours as I recall).
I had the good fortune to sit next to a woman serving as guide for a group of French travelers. She also spoke excellent English and she made it her duty to explain much of what we saw along the way. We traversed the high altiplano, at one point reaching an altitude of 14,400 feet. There were hundreds of Indians working in the fields or tending their herds of alpaca and sheep. There were also flocks of flamingos and numerous other birds that, despite the guide's best efforts, I can't identify.
After arriving in Puno, I spent a couple of days seeing the nearby sites, including Sillustani, an ancient burial site where the tombs are tall, cylindrical towers featuring very precise stone work. I also visited the nearby Floating Islands of Lake Titicaca (photos of which are on a separate page).
Puno was also my last stop in Perú. I traveled on to Bolivia by a bus that drove along the shore of Lake Titicaca and then by boat across the Lake. While still on the Perú side, we stopped at the small town of Juli, which has been dubbed the "little Rome of Perú" (by someone with a more vivid imagination than mine). There are several very well-preserved churches in Juli that are worth the stopover.