The vast majority of people take a pre-booked tour from Hanoi on a tourist boat, though this is probably the slowest, least flexible and a relatively expensive way to visit Cat Ba and should be avoided at all costs unless you specifically want to be locked on a tourist boat for five hours while being given the hard sell and overcharged for the most minimal of refreshments.
It's cheaper and more flexible to come either on a non tourist boat at Halong City or via Haiphong. If coming from Hanoi, you can also take a direct, combined bus/boat trip from Luong Yen Bus Station at 5:20, 7:20, 11:20 and 13:20 which takes 4.5 hours (compare: 5 hours for a slow tourist boat just to get from Halong City to Cat Ba's northern port!) and costs 190,000 - 220,000 VND (US$9-$11) depending on season.
From Haiphong: there is a speed boat doing the trip several time a day (the last one around 16:00) from Phà Binh harbor. It costs 150,000 VND (May, 2012). Not more! The price is written on the ticket but some people sell false tickets with written 180,000 and they say the price was 150,000 last year or last month! If the boat arrive in Phù Long, they can also say that 180,000 include the bus from Phù Long to Cat Ba... but it's also included in the 150,000 VND ticket: boat and bus can't be divided... it's the same company