You need local currency.
We went in 2010 off the Disney a magic and we are going again at the end of July.
Russia you need their local currency the ruble for small purchases as you say. You can get these in advance but you cannot take currency back out of Russia bar a small sum.
The big tourist places such as the Hermitage will take Euros and cards but apart from that for snacks, soda post cards have local currency. It is quite cheap there.
Tourist shopping places such as where tour guides will take you will take Euros and cards, the terminal duty free shop at St Petersburg will take anything. Dollars is not a good idea bar in the main tourist places.
Whilst some places take cards in Russia due to high levels of fraud I would not suggest it.
If your on a private tour your guide will tell you what's safe and what's not safe.
We got coke, postcards and ice cream in places like Catherine's palace and the Peteroff where we had a meal but paid in cash.
Now on my private tour over two days we have the odd thing to pay in $ like the Faberge Museum, and the fountain park at Peteroff , but 90% is local currency and do take that for small purchases.
Now for the Russian Matryoshka nesting dolls they are expensive and the places that sell them will take credit cards.
Direct from Anastasia Travel: As for the Rubles, For lunches I allow about
700-1000 Rubles per person per day, as not all the cafes accept cards. Souvenirs you can buy using your card or USD or Euros - they are usually accepted by Large tourist souvenir shops.
Keep some change for restrooms some charge or gave a person there that you tip.
Denmark it's the kroner, Euros ok, and cards are good.
Sweden its Swedish kroner, euros ok cards fine.
Finland Euros and cards ok, the same as Estonia.
Finally for Dover cruises it's the £ pound sterling and cards accepted.