One reason cruises appear to offer such good value is that the operators are banking on your "onboard spend".
With a captive market, drinks can prove very profitable – as can the cruise company's excursions. The business model for most of these involves recruiting a local operator to provide the trip, whether a quick bus tour of a nearby city or a full day's outing – for example, on Baltic cruises a favourite excursion is to Berlin, even though it is 100 miles inland.
With the local operator making a reasonable return, and the cruise firm adding its own handsome margin, excursion prices can be high. In most locations, though, there is a cut-price alternative. Let's take that Berlin trip, for which Princess Cruises charges around £200. Ships typically dock in Warnemünde or Rostock, fairly close to the respective railway stations. An ICE high-speed train can get you to Berlin within two hours and 18 minutes, quicker than the bus, for a maximum fare of €97 – around £70. Once there, you can choose a hop-on/hop-off trip such as that operated by CitySightseeing, for €18.
A growth industry in recent years has been "unofficial" excursions, provided by third parties. They will meet you off the ship and take you on a trip that may be broadly comparable to the cruise line's, only cheaper. If you go through a good cruise-specialist travel agent, they should be able to advise.
There are some occasions when an official excursion is the only way to go. For example, if you want to visit St Petersburg without a visa, you must join an official trip – even if it's only "We'll take you to Nevsky Prospekt, drop you off and come back for you six hours later".
One more aspect to bear in mind. Cruise companies promise they will never sail if an excursion group has not yet returned to the vessel but make no such guarantees for DIY excursionists. So allow a reasonable margin of time to cope with unexpected events.