Yes. Russian VISA is needed
But work with your tour operator: travel agency and ur cruise company. I
think you don't have to apply it
upfront at Russian embassy. There is local travel agency that can handle the
VISA for you if you join their
operated tour. Which is highly recommended as St. Petersburg is not
considered as a safe port to roam
around independently.