"can you give any advice on where is the best place to get the cruise from and if we should be staying in cologne or is it best to stay near/outside of the city - we have a car and there are 5 of us and are thinking that 2 nights in this area would be enough (preferring self catering)"
Don't stay in Cologne unless you have sightseeing goals there. Try the Brühl area or south of there near Bad Neuenahr-Ahrweiler, a popular vacation destination, where it should be easier to find a self-catering apartment for a couple of nights.
On the second day, drive south and across the river to Linz as suggested by Scotsman - it's a gorgeous town - then on to Braubach; you can take a tour of Marksburg Castle there, the only never-destroyed castle there with tours and a great experience:
http://www.marksburg.de
Leave the car there; buy a Rheinland-Pfalz ticket (daypass good for the family) and take the train south to Rüdesheim to begin your cruise north. You want to cruise northward since it's faster. The boat will drop you back in Braubach after about 3 hours, and you will have seen the best part of the Rhine.
Boat schedule:
http://www.k-d.de/english/kd-scheduled-cruises/kd-rhine-timetable/
R-P ticket:
http://www.vrminfo.de/en/tickets-and-fares/ticket-offers/rheinland-pfalz-ticket/