Because I had a lot of questions about this before I went, I thought I would share my experience:
- I booked via website a B-class private cabin for myself, both ways, at a total cost of $363 (including the mandatory city tour). The cabin was fine and I was even impressed with the pressure and temperature of the shower. Be sure to immediately turn the air-conditioning up to full blast upon check-in, because I think they turn it off when room is cleaned. Without, the room got stuffy.
For my three days and two nights in St. Petersburg (your stay must be less than 72 hours), I arranged accommodation privately via airbnb.com. This was partly because hotels are expensive there and partly because I prefer a bnb-type experience.
Now, I believe the visa-free program is set up so that ferry passengers book both tours and accommodation via St. Peter Line. But this is not entirely necessary. The only real requirement is that you book the "City Tour" on the St. Peter site at the same time as you book your ferry trip. This city tour is actually no more than a shuttle from the ferry terminal into the center of historic St. Petersburg. Along with times for you to catch the return shuttle two days later. It just so happened that one of the shuttle stops was a hotel no more than 5 minutes walk from the guesthouse I booked.
What I wasn't sure about before I left was whether an official tourist "invitation" -- showing payment of hotel -- would be required at any point in the trip. To be safe, I asked my guesthouse host about it, and he arranged for an invitation to be emailed to me by a travel agency (at a cost of $15).
It turns out the only place where they asked for this was when I checked in at the ferry terminal in Helsinki with St. Peter Line. I'm not sure what they would have done if I didn't have the letter. Upon arrival in St. Petersburg at immigration/passport check, they did not ask for anything accept the departure/arrival cards provided by St. Peter Line. My advice would be for people booking this kind of accommodation independently: get the letter from a travel agency as insurance. It's only 15 bucks.
Meantime, St. Petersburg was fantastic. I figure the $363 paid for the ferry trip is less than the $200 visa costs plus two nights of hotel (since the ferry trip includes essentially two nights 'hotel' in your cabin), so economically it made sense for me. Not to mention all of the hassle I avoided by not having to wrangle all the paperwork for the visa from back home, plus hoping it would arrive in time.
On the other hand, spending what amounts to about 54 hours in St. Petersburg is a bit of a crime: I barely scratched the surface of all there is to see and do in that wonderful city. Now I will have to go back!