www.gettaxi.com is what works best, both in Moscow and in St. Petersburg.
Uber is just launching these months, and they have a very limited avalability of cars, while they test-launch their service.
I always had good experience with gettaxi, as they have a much more omogenous level of service and cars, compared to yandex taxi. The credit card payment doesn't always work for whatever reason, that happens both to me with a foreigner card and to my russian friends.