All russian cities we visited had a very well working public transport system. It consists of metros, trams, busses, trolleybusses and minibusses.
On the metro, you pay for a coin (Yekaterinburg) or ticket (Moscow) before entering the area.
On Trams, you usually just get on the tram and there's a person where you can buy a ticket in the tram. It has a fixed price, which is usually between 10 and 20 rubels (about 0.25 to 0.50 €), if you need to switch the tram, you pay again. On busses, it's sometimes the same, if there's no person collecting ticket fees, you pay to the driver when leaving the bus. Same with trolleybusses and minibusses.
As long as you know which line to take, this is quite convenient. Usually, all lines come quite frequently, you only wait some minutes if you miss one. There was only one occasion where we had to take a taxi in Russia (to get the ferry to Port Baikal in time - the ferry itself worked like the trams, you pay on the ferry).
In Ulaanbaator, we found it a bit harder, mainly because we never really found out which bus to take (no tram or metro here). The ticket system is the same (you pay to a ticket seller on the bus). The busses here are often very overcrowded. Taxis here are really cheap, so that's what many people use.