We did Moscow-to-St. Petersburg with Viking in 2009. OK, but not great. The one thing that we did that substantially improved the trip was to hire private guides both in Moscow and in St. Petersburg.
In Moscow we used Daniel Petrov (danpetrov74@gmail.com) and he was great. He met us at the wharf and we zipped downtown on the metro while the Viking buses were laboring for an hour in traffic. We went to places we wanted to go, ate where and when we wanted to eat, and were back to the boat on schedule. All arranged, including checking references, via email ahead of time.
In St. Petersburg we extended a few days and had arranged with our hotel to book a guide. Said guide broke her collarbone the night before our date, so we ended up with the hotel owner as a guide. He was fantastic. Again we went where we wanted, when we wanted, ate at places and time of our choosing, etc.
So, wherever you go I strongly recommend avoiding the bumbling herds on the boat-arranged excursions and instead booking private guides.