We used SPB Tours and we felt they did a very good job for us for the 2-days we were there.
But you need to do an organized shore excursion when in St. Petersburg - just too much to see in such a short time to try and do it all yourself.
And I definitely recommend an independent company for the tours. They don't charge as much, but the main thing is the size. If you do one through the cruise line, they are WAY too crowded. Whereas in our group, we had 10 people and it was wonderful. I would not have wanted to be on one of those excursions with 45 other people, especially when going through the museums. Plus, since we did have a smaller group that managed to make it through the lines and places quicker, we got to go to more places and see more things.