I'm not sure what Viking's recommendations are, but, given the markup I know they slap on their SPb hotels, I doubt it would be anywhere close to decent value for money.
The cheapest way to go is to obtain a "visa support" paper from one of the many online agencies for about 20 to 40 dollars (make sure the dates overlap your intended stay duration by a couple of days on either end) and apply via an ILS branch closest to you (when you file their online application, make sure to use the data from visa support letter, not your real Viking data).
If you can do it in person, it would add up to about 125 dollars (90 for the single-entry visa plus 35 for ils services). If you have to mail it in - add another 85 per person.
I cite the numbers from memory, so I might be a little off; that said, I don't see how using a third-party visa service (however reputable) would add any value.
If Viking can provide you with the letter of invitation (visa support), that would save you an average of 30 bucks and make you feel better, as you won't have to "creatively modify the truth" in your visa application. On the other hand, I would assume it would match the dates of your stay exactly, removing the "safety cushion" on either end.
If you have any questions on the actual visa process - there is a bunch of people here who did it on their own, and I'm sure they will be able to walk you through all the steps.