Just done St P a month ago on Celebrity Eclipse. Though you can do tours through the ship, you will do much better doing a private tour. The big names are Denrus, Anastasia, Alla, Red October. To be honest, your best bet is to go to
http://boards.cruisecritic.com/ and join up (for free). Look for the roll call for your cruise and see who is organinsing tours. Our 2 day tour with Denrus was $295 each. If you go through a tour company (or the ship) you don't need to buy a visa (around $300). It is included in the price and the tour company, who effectively sponsor you to be in the country. Russian immigration is dead easy too now. Just have your passport, tour ticket and landing card (from the ship) and you will be through in 30 seconds. Much easier than the US!! So thats my advice, sign up for a private tour. It is by far the easiest and best way to do it.