Unfortunately, Russia still requires a visa for tourists. It's expensive ($170-$250), you have to answer a slew of probing questions, and you're essentially required to use a pricey visa service. Cruise ship passengers are welcome to tour the city without a visa, but only on a guided shore excursion from the ship. Also, some local guides are licensed to take cruisers who don't have visas on day trips from the boat. (While this can be expensive and is rarely done, it's a workable option -- and I found several good guides to recommend for this service.) Only a few passengers actually go through the hoops to get a tourist visa (as we did), which allows them to come and go freely using the boat as a hotel.
The only port in Northern Europe where cruise ships routinely spend two (or sometimes three) nights is St. Petersburg. That's because there's so much to see and (I figure, cynically) there's so much money to be made off the fact that in order to go ashore, thousands of passengers buy excursions. I understand that one big company has a lock on the cruise business in St. Petersburg, and the cruise lines make more money at this stop by far than at any other. That's why the big players have no problem with Russia's ornery visa requirements, and most local insiders anticipate no change in the near future.
It's loosening up for some nationalities (for example, most Latin Americans don't need a visa for Russia). But the world of visas is one of reciprocity, and until the US allows Russians in without visas, Russia will keep the same requirement of American travelers. It's only logical in the sandbox of international relations.
Follow Rick Steves on Twitter: www.twitter.com/RickSteves