Don't take the bus, god what a nightmare that would be stuck on a bus for 15 hours with a bunch of backpackers and the incidence of robbery on those bus routes is astronomical.
Here are the best ways from most expensive to least expensive:
1. Fly with Bangkok Airways direct to samui (4.5k baht one way)
2. Fly with Nok Air to Surat Thani and take the ferry (about 2k one way all up)
3. Take the overnight sleeper train from BKK to Surat Thani then ferry from there (about 1300 baht all up)
Edit: Depending on what day you fly you can get the Bangkok Airways BKK-Samui flight for as low as 3k baht. Standard price is 3.6-4k baht though. The surat thani flight+ferry isn't a bad option for a tourist since the ferry trip is fairly enjoyable and you get to see 1 more city (Surat Thani) which might make the extra time spent worth it.
http://www.travelfish.org/feature/57 has good info about the train options
The train is so much better than the bus for all sorts of reasons, but briefly
* The private buses are run by criminal organisations who coordinate theft teams to come in and rob the luggage compartments when the bus stops at a truck stop for food+drinks. This happens so often that it's become a running joke. The public buses don't have this problem but are very uncomfortable.
* A 2nd class sleeper on the train costs no more than the bus, and you can lay down and sleep.
* Trains have a restaurant/bar carriage to help pass the time if you can't sleep.
* Buses are by far the most dangerous way to travel.
You'd be crazy to catch the bus.
Last edited by PokerSpiv; 11-08-2010 at 09:56 AM.