Of course you do. They are separate countries with their own currencies. If you pay with € or US$ then expect a rubbish exchange rate. Visa credit cards will be accepted everywhere. Russia will be the only place that readily takes US$ - but clean new bils only.
We have just come back from the Baltic and can confirm that in all countries euros were accepted, even though with the exception of Germany all had their own currencies. However they did tend to give change in the local currency but certainly shops in Norway, Sweden, Russia, Estonia and Denmark all took euros but the rate of exchangee was probably not advantageous, which for small purchases like coffee or postcards was not such a problem. For any bigger ones I would suggest a credit card which was universally accepted but there is not the need to have to take multi currencies with you.Have a good cruise and St Petersburg is something really special.