I think there are differing opinions about how long to stay. My view was since I was there (and probably won't go back again) then I wanted to make the most of it. So I did a 2 night, 3 day cruise.
Some people take the option to get off the boat on the second night and stay on Cat Ba island, but again, I wanted to make the most of the boat experience so stayed on the boat for both nights.
What to do? Well, the trip that I was on had the entire time pretty much mapped out, almost annoyingly so. It was a bit cheesy, too. But... I just went with the flow, and had a really nice time. We had a picnic lunch on a beach, visited a cave and a floating village, went kayaking - standard stuff that I think all the cruises do. And I just enjoyed sitting on the top deck, watching the scenery go by and reading a book. It's not action packed - but I didn't find it boring either.
You're not really on the boat for 3 full days either. It's a half-day bus-ride from Hanoi to where you meet the boat, so I think you actually board around 1-2pm by memory. And you get back a similar time the next day (or two days later).
Also, the benefit of going on the longer trip is that the boat gets out past the other hundreds of day trip boats.
I took the 2-day overnight trip in case I got bored floating around the ocean, marooned with the same people for too long. Felt a tad out of place as a single guy with 3 couples from Singapore and Malaysia, but whatever - I just told them I forgot my girlfriend and we all got social enough after a few 333 bias.
The guide was a pretty decent dude who spoke English well enough to answer all of my silly questions and none of the boat crew tried to rip us off (I remember reading a few horror stories before I left on the net). The scenery was pretty amazing and it was fun to go out kayaking. We went to the "Surprising" cave, which unsurprisingly was cram-packed with tourists.
The only thing people seemed to feel was a let down was the food. The portions were generally a bit limited, and the desert in our 3 course dinner was a Choco Pie. I personally love Choco Pies, but who can really feel satiated after just one?
We had another snack masquerading as a meal in Ha Long city on the way back to Hanoi, and we were all left more or less emaciated by the end of the trip.
I reckon they could have been a bit less stingey with the food for $90 a head, but that aside it delivered everything else promised.
The company I went with was...
...Oops - I forget the company.
Oh, that's a pity about the food, Cranky. The food was a highlight on the trip that I did. Every meal was an event - everything was creatively presented, tasty and there was lots of seafood. As someone who loves food, this went down really well!
(That was with Columbus Cruises - and it was a tad more expensive!)
I think a lot of this comes down to personal preference, what you're looking to do while you're there, and how crunched your itinerary is. I did a 2-night cruise last summer, and I enjoyed it because I got to see some farther, less-touristed parts of the bay. It seemed to me that the majority of people do the 2-day, 1-night cruise, and you're in a pack of 50 boats for most of the time running the same itinerary that you are. The longer cruises go to different places and have more diversity in what they do, I think. Also good if you want to spend a lot of time kayaking or swimming, as things aren't so rushed. I did not spend a night on Cat Ba, and did not miss it.
One additional note about Halong Bay, if you haven't gathered already from reading these forums: you get what you pay for.