I took a 13 day Baltic cruise on Royal Carribean last year and would recommend that line for a mid-priced option. There are many other cruise lines that do the Baltics cruise as well. A few general things to consider:
1) Ideally, try to find a cruise with an overnight in St. Petersburg. There is so much to see there it really helps to have at least two days. You do not need a visa for a cruise visit but you must arrange with a registered tour guide. You do not need to stick with the cruise line excursions. It's often cheaper and more personal to arrange tours independently. There are many reputable tour operators in SPB and other ports.
2) For Stockholm, try to find a boat which docks in Stockholm itself and not in Nynashamn which is about an hour outside Stockholm. Some cruise lines provide a longer day in port to accomodate the additional time but it's still a hassle.
3) Compare port times between cruise lines. Some have longer times in port or earlier/later port times.
4) Consider the departure or arrival port. Most cruises begin in Copenhagen, Stockholm, Germany, or London giving you the opportunity to spend more time in those cities pre/post cruise.
5) Sometimes the itineraries refer to Berlin as a port. The boats actually dock at Rostock or Warnemunde which are about a 3 hour train ride from Berlin. Many people do a day tour to Berlin but it is a long day and there are also several shorter excursions available closer to the port cities.
5) Keep in mind some of the Baltic cruises are very port intensive and tiring so entertainment and/or food on board may not be as important as on cruises with more sea days.
If you haven't already selected a specific cruise, try using Vacationstogo.com. I have no experience using them as a travel agent but they do have a great search engine which will show you all the cruise options. Simply enter your date parameters and then select Baltic or Northern Europe as the Cruise Region. You can sort by price per night to find the least expensive options and by clicking on a specific cruise, you can see all the cruise ports visited.
In the mid-price range, I can personally recommend Royal Caribbean or Holland America. I thought the food better on Holland America but the entertainment/activities better on RC. Norwegian is another lower cost option if you are price sensitive. I have had good luck using Cruisecompete to get the best prices on a number of cruises.
Definitely, check out the cruise critic forums. There is a wealth of information on Baltic cruises and tours on that site.