Vessel is a catch-all term, like 'watercraft', which describes any floating object used for the carriage of people or goods. Generally smaller and less complex vessels are 'boats', whilst larger and more complex vessels are 'ships'. As a general rule, you can put a boat on a ship, but you can't put a ship on a boat.
Specifically, boats are small to medium-sized vessels with hulls,* powered by sails, engines, or human force. Some types of vessel are always categorised as boats, regardless of their size or complexity.** Their 'boat' status was designated when these types of vessel were small and has stuck despite their future growth.
A ship is a larger vessel, built to transport either passengers or cargo. These types of vessel started off large and accordingly we talk of a cruiseships, containerships and a battleships.
* a raft, for instance, has no hull; it would therefore be incorrect to call it a boat - hence 'life raft'.
** submarines, fishing boats, tugs and barges for example.
(Image Credit: John Keogh)