Boy... I could write an epic on thsi post.
I say Azamara is the best, You will want three days it St Petersburg, the more time you have there the more you see. Prinsendam is a nice ship, but older. You will appreciate having the balcony and the food will be better on Azamara.
Seeing St. Petersburg; Cruise Ship Ports and Cruising Regions
Read this article about seeing St Petes. There is SO much to see there.
Also, do not discount Warnemunde. The trip to Berlin is worth it but if you dont want to go the seaside town there is a very friendly seaside (a large nude beach) town which is the main seaport for Berliners.
The trains run between Berlin and Warnemunde almost hourly so you can do Berlin on your own.
You are going all that way - don't get on a ship with a lot of sea days - you want to see Europe, not the ship. Also, don't believe the thing about nickel & diming on Azamara. The small ship makes it more convenient and dining in the regular dining room is good food. You are there to see Europe, Azamara gives you good food and comfortable rooms - the rest is about touring.
Oslo - believe me, by the time you have seen the other Skand. ports Oslo will look mush like the rest of them. There is a distinct sameness to Oslo, Helsinki, Copenhagen, etc in terms of architecture etc.
Gdansk is a great place to visit.
Please do a search in CruiseMates for all aricle about cruising the Baltic - we have many.