Flights: There's now a direct flight to Roatan from Belize with TropicAir. The flight connects onwards from Belize City to Mexico, so if you're looking to cut back on the amount of bus travel you have to do, this is a good option. Email me for a promo code to use when booking the flight to save 10%.
There's also a flight from San Salvador to Roatan every day with Avianca. It generally is a bit pricier, but sometimes there are specials, so it's worth checking.
A flight has now started between Havana, Cuba and Roatan.
There are also domestic flights over from La Ceiba, San Pedro Sula, Tegucigalpa, and a new service starting from Copan.
Bus/ferry: For those taking the slower journey and trying to stretch their cash as much as possible, this means going overland with a combination of buses and boats. From Belize, there's a direct boat from Placencia to Puerto Cortes, Honduras every Friday (and Puerto Cortes to Placencia every Monday). If that doesn't work out with your timing, you can take the bus as far as Punta Gorda, Belize, and then take a boat from there to Puerto Barrios, Guatemala (this is also the route if coming from Rio Dulce, Guatemala), then a bus to the border, crossin over near Omoa. For either of these routes, you'd then continue on to San Pedro Sula, switch buses at the main bus terminal (which is a pretty safe-feeling, well-lit, busy place), continuing on to La Ceiba, and taking the ferry over from there. The ferry leaves La Ceiba twice a day, with the afternoon one leaving at 4:30 (morning ferry is at 9am), so it's possible that you might end up having to spend the night in La Ceiba. If you do, you might want to actually see something, and check out Pico Bonito national park or whitewater rafting on the Rio Cangrejal (take a look on the internet for Omega Tours or Jungle River tours if that's of interest).
If you're coming from Antigua, Guatemala, there are shuttles between there and Copan, Honduras. From Copan, you can get to La Ceiba in one day by bus (about 7 hours of bus travel, changing buses in San Pedro Sula), in time for the afternoon ferry if you get going early. If you're coming from Guatemala City, there's a direct international bus service with Hedman Alas to San Pedro Sula.
From El Salvador, the King Quality bus lines has a direct international service to San Pedro Sula.
Heading to/from Nicaragua? You can either catch an international bus to San Pedro Sula or Tegucigalpa and a bus from there to La Ceiba, or there's a shuttle bus with Tornabe from Leon, Nicaragua straight through to La Ceiba.
Bus travel on the mainland of Honduras sometimes makes people wary, as there have been stories of hold-ups on buses. There are several bus lines in the country. The cheaper ones cost around $5 (might be a bit more than that now, it's been awhile since I've taken one) to travel between San Pedro Sula and La Ceiba, and take about 3 1/2 hours or so. They're fairly comfortable if you get on early enough to get a seat, and don't have many stops, but they don't take the same security measures as Hedman Alas. Hedman Alas offers a higher end coach service (a/c, drink, snack, movie), and costs about $20- they also have a bus that goes to the airport in San Pedro Sula, so if you're flying into San Pedro Sula and then busing from there, that's a good option.
The other place that many travelers are coming from is the neighbouring island of Utila. From Utila to Roatan, it's possible to get a flight, but pricey (around $100). You can also take the ferry to the mainland and connect to the ferry to Roatan from there, or you can come over on a direct boat between the two islands. These boats don't run on a super-set schedule, but they do go several times a week, and the cost is about the same as taking the two ferries (about $55). To try to find a boat that's going, you can go on the Facebook group 'Utila buy and sell', and post the day you're looking to go.