The standard way to get to Ulaan Bataar from Beijing is via the Trans-Mongolian train. At 650RMB, this is kind of steep. There’s another option of taking a sleeper bus to the border town of Erlian 二连, crossing the border, then taking the Mongolian local train to UB. The sleeper bus is 180RMB and the train is between 5,000-12,800 tugruk, or $4-11USD so this option is less than half the price.
The trick is finding out where to catch the sleeper bus from Beijing. It’s not from the DongZhiMen long distance bus station. For a nice step by step site on catching the bus from the south of the city, read here. I caught it from a different station near the fourth ring road in north Beijing.
The easiest/cheapest way to get their is to take the subway to Jishuitan 积水潭 station and either walking (15min) or taking a taxi one street east to Deshengmenwai dajie 德胜门外大街. From here you can take several different buses (55, 670, 345, 315, 305) to qi jia huo zi 祁家豁子 bus stop. The Deshengmen Long Distance bus station is right there.
I showed up a day early to try to book a ticket and the guy told me I didn’t need to and to come back the next day at 4:30. I did and had no problem. Some other girls there had booked the whole bus/train package from their hostel for around 450RMB. Not as cheap as doing it all yourself, but still cheaper than the Trans-Mongolian. The email for that booking agent is email@example.com.