I would absolutely go with Radisson SAS on Nevsky Prospekt. DO NOT go for Nevsky Palace (former Sheraton) on Nevsky Prospekt, not worth the money. Astoria is a good hotel, but service wise and value wise I would go for Radisson SAS Royal, it will be more consistant and friendly. I believe you can get a rate of around USD175 at Radisson SAS Royal if you go to
www.radisson.com
Any hotel will send an invitation you will need for your visa to the closest Russian Consulate (depends on where you reside). Make you that you will have both the checkin stamp and checkout stamp on your visa (made by the hotel clerk), you will need both stamps to avoid any problems at the passport control on departure from LED (they are strict about it and the fines can be hefty). Don't forget, that if you are a citizen of one of the EU countries you can obtain your visa at LED for a stay under 3 days, however I still recommend getting your visa in advance to avoid the hassles of the airport consular window