Unless you are planning on going ashore with a ship's excursion then yes you do and you need to organise this before you leave the UK. I belive that if you book on a other tour you also dont need a visa as they organise this for you. I've heard that a company called Red October do tours that meet up with cruise ships but I've no personal experience of using the.
If you are going with the ships tours then NO you do not need visas. If you are going with one of the local tours [Red October, Alla, Denrus and Anastasia are the most recommended - I personally am using Alla and am totally impressed with all comuncation from her, and the prices - $300pp for a two-day inclusive tour if you are interested! Just compare that to the ships prices!] - then NO you do not need visas. The tour documentation suffices of proof of when you will be in the country. If you plan to DIY then YES you will need a visa. This is not recommended. The port is in a pretty undesirable district of town, town is a 30m drive away, and then you face the problems of getting a Russian cabbie to drive you back to the port in the night.
Thank you Juniper green for your answe.
Not worth the hastle of travelling independently and the cost of a visa. Go on ships organised tours and you are covered by a group visa.
Has anybody else any experience of using Alla Tours when ship docked in St Petersburg.