Getting to Zanzibar has a number of options. The Abeid Amani Karume International Airport in Zanzibar is the easiest depending on where you are coming from. The airport takes in chartered flights from Prague, Warsaw, Rome, Brussels, Frankfurt, Doha, Muscat, Tel Aviv, Johannesburg and other international flights with the likes of KLM, Condor, and Oman Air. It is also served by all Tanzanian airports. So, if your flight arrives in Dar es Salaam you can book ahead for a transfer to Zanzibar (or Pemba) on a small mono-engine plane for about $50 with operators such as As Salaam Air, Auric Air, Precision Air, ZanAir, and Coastal Aviation. You can book these in advance but beware that these flights are known to sometimes leave earlier than scheduled. This is a short and enjoyable 20 minute flight which gives you some impressive views of the archipelago as you are getting to Zanzibar. Taxis are readily available at the airport when you arrive to take you to your hotel.
Another way of getting to Zanzibar is to take the Azam ferry service from Dar es Salaam. This is a two-hour journey but it is recommended you arrive at the ferry port an hour before departure and, as online purchase of ferry tickets is not possible, buy your tickets the day before. This is recommended if you plan to stay a night in Dar es Salaam before getting to Zanzibar: using the ferry, which is right in the city centre, often turns out quicker than flying because the car traffic in Dar is notoriously slow. Ferry tickets for a single journey getting to Zanzibar cost $35, or $50 for VIP, and the ride is usually comfortable in the modern Azam ferry across usually calm waters, but there is of course always the potential for sea sickness so take this into account before deciding on how you are getting to Zanzibar. Also beware that when you get to the port in Dar es Salaam, the people offering to carry your bag expect a tip and be sure you get your ticket at the official Azam vendor: do not allow a local to take you to a separate vendor. Daily ferry departures from Dar-es-Salaam to Zanzibar are at 0700HRS, 0930HRS, 230HRS, and 1545HRS.
For tickets see http://www.azammarine.com/