By Plane ; For sure the fastest way. There are daily (over 15) flights from Bangkok to Samui via Bangkok airways and (a few) via Thai Airways. If you book well in advance, they aren’t too expensive.
There are daily international flights from Kuala Lumpur (via Firefly), Singapore, Hong Kong (Bangkok Airways) and national from Trat, Krabi, Pattaya and Phuket (all Bangkok Airways).You can also fly to Suratthani airport (on the mainland) and take the ferry from Donsak to Samui. This will be cheaper (Thai airways, Nok airways, Air Asia), but will take you a few hours longer.
By train : comfortable, safe, cheap, environmentally friendly. And unlike flying, it’s a genuine Thai experience making the journey as much a part of your trip as the destination. There is a night train from Bangkok to Suratthani, followed by a bustrip (1 hour) to Donsak and a ferry to Samui (from 45 min to 90 min).
By Bus : If you stay in Bangkok, any travel agency will be capable of selling you a ticket for Samui, going from 250 to 300 baht for the cheapest (on Khao San Road) to 600 baht for a VIP bus containing generally only 24 passengers therefore comfortable, all are air-conditioning, apart if you ride a local coach which stops every time when a person holds the arm out by the roadside. It will take you between 10 to 12 hours.