Azam operates four fast catamarans daily between Dar and Zanzibar Island (economy/VIP US$35/50), departing daily in each direction between about 7am and 4pm. The exact timings change frequently; check the website for current schedules. All take about two hours, with a luggage allowance of 25kg per person. There's also an occasional night ferry (nine to 10 hours) for the same price.
The VIP tickets get you a seat in the air-con hold, but arrive early if you want to sit together.
To Pemba (standard/VIP $70/80), Azam's slow ferry departs Dar es Salaam twice weekly in the evenings, reaching Zanzibar Island in the early morning, and arriving in Mkoani (Pemba) by mid-afternoon. Azam also has a weekly slow boat between Zanzibar Island and Pemba and a weekly connection between Pemba and Tanga.