We booked 3 tours in Rio through www.southstartours.com
They were very helpful (my mother is in a wheelchair so we needed some extra help) and friendly, and spoke good English. We also used them in Buenos Aires and Santiago. We did a city tour, an evening dinner and Carnival show, and a trip to Petropolis, after which they took us to the airport for our return home, and stayed to be sure we got through security alright (an unplanned extra).
I used Eureka Tours http://www.chile-travel.com/eureka.htm
in Puerto Montt and they provided us with a driver and a Mercedes for an all day tour that cost less that the 3 of us taking a cattle car bus tour from the cruise line. We saved money with all of the tours and had much more individual attention...and a more flexible schedule in each port.