The most popular travel route between Russia and Mongolia is taking an transmongolian train from Irkutsk (or Ulan Ude) to Ulaanbaatar. Because it's an international journey you can not book the ticket on russian railways website. But with some googling you can find other companies that sell those tickets. Anyway, I see two problems:
1. It's expensive. In May 2016 a ticket Irkutsk - UB cost 170€. All tickets are 2nd class what rises the price.
2. There is only a couple of cars (three in my case) that get pulled over the border. Russian train goes only to the border where those cars are switched to mongolian train.
Of course there are other options. This article covers how to get from Irkutsk to Ulaanbaatar on budget.
First book a ticket only to Naushki. This is the last train station on the russian side of the border. There is a lot of trains going there so you shouldn't need to hassle booking it far in advance. I bought a ticket in 5th class (obshiy - обший) and it cost 846 RUB.
There are five classes on russian trains:
1st class - I haven't seen it but I guess it's for the people with money.
2nd class - kupe (купе) - beds in cupes
3rd class - platzkartniy (плацкартний) - beds in common area
4th class - seats
5th class - obshiy (обший) - beds in common area, but they sell more than one ticket per bed. If the train is not sold out you have good chances to sleep on you own bed. If it is you'll have to share your bed - meaning you're going to sit. But those cars are rarely sold out so in most cases you can lie down. In my opinion, 5th class represents the best budget alternative to more expensive ways of travel.
Mine was a night train. It left Irkutsk at 9:30 pm and arrived to Nushki at 1 pm the next day.
When arriving to Naushki you have two options. You can try to buy a ticket to Sukhbaatar (first station on mongolian side) on the one and only 2nd class car that is pulled accross the border. Keep in mind tickets might be sold out well in advance. Or you get to Sukhbaatar by the road.
I choosed the second option. Just after stepping out of the train a taxi driver came to me and offered me a ride to the road border crossing in nearby Kyahta (also Khyagt) for 1000 RUB. That's too expensive. But with some negotiating and when he managed to convince also another 4 passangers to go with him in the same ride, he lowered the price to 200 RUB.
It is not allowed to cross border in Kyahta on foot. You'll have to find another car, probably mongolian, that crosses the border. I just asked in a random car at the beginning of the line (just infront the border crossing gates) and they took me in for another 200 RUB.
After all the border bureaucracy and entering Mongolia a local money dealers will step to you. They exchange money by the fair rate. So after all rubels exchanged for tughriks you still have to get to Sukhbaatar. Again you can find some taxis or just ask random people if they take you with. Most of the people don't speak english in Mongolia. So it can be a bit of a hassle but nothing impossible. I got a ride for 2000 tughriks.
Probably you can arrange a driver to drop you off at Sukhbaatar train station. There you buy a train ticket to Ulaanbaatar. It should cost around 20,000 tughriks or even less. The train will leave no sooner than around 9 pm so you have plenty of time to get there. For all the way to Ulaanbaatar it takes around 10 hours. So expect to be in the mongolian capital early in the morning.
1. Book a train to Naushki (obshiy class - 846 RUB, daily trains)
2. Take a taxi to the road border crossing in Kyahta (200 RUB)
3. Ask drivers in the cars waiting on the border for a ride over the border (200 RUB)
4. Take a taxi/just any car to Sukhbaatar train station (2000 MNT in my case, but not more than couple of €)
5. Buy the train ticket to Ulaanbaatar (not more than 20,000 MNT, daily trains in the evening)