Some claim that, because of old naval architects' usage, technically, a boat should have only one deck whilst a ship may have many. That is no longer true. I have never heard the word 'ferry-ship'; such vessels are invariably called 'ferry-boats' and may be of vast tonnage and multi-decked.
It often used to be said - as in the answer above - that "You can get a boat on a ship but you can't get a ship on a boat" on the basis that boats were invariably smaller and that ships actually carried boats such as �lifeboats' as part of their equipment.
However, that saying is no longer true either. In 2002, the Royal Navy's Type 42 destroyer, HMS Nottingham - definitely a 'ship' - ran aground on Wolf Rock off Australia and was carried back to the UK on the civilian salvage vessel, Swan. She would certainly qualify in many people's minds - even the one-deck supporters - as a 'boat'. So, now we have seen "a ship on a boat"!
All Royal Navy and foreign military vessels, other than small ones such as cutters etc, are called 'ships'...except for submarines, which are always called 'boats'! Thus, no-one who served on HMS Spartan, a British nuclear submarine, ever called it a ship, despite the fact that the �S' in �HMS' actually stands for �ship'!
It is also common for ex-crew-members on British shipping-lines to refer to their time "on the Castle boats" or "Cunard boats" despite the fact that these had many decks and were called "steam ships". This is another aspect which makes it clear that size or decks alone are no longer major factors in whether the word �boat' or �ship' is employed.
Although the little thing you row on the lake in the park will always be a boat and the grey naval cruiser will always be a ship, in modern usage there is no real difference in the meanings of the words, when speaking of large civilian vessels.