Royal naming is confusing and I know way more about it then I should since I'm not British. My maternal Grandmother was English, which is where my interest comes from :) .
As a member of the royal family entitled to be called "His Royal Highness", William formally has no surname. Officially, he is part of the House of Windsor. In 1960 the Queen issued an Order-in-Council that gave her descendants the last name of Mountbatten-Windsor. Mountbatten is the maiden last name of Prince Phillip's mother, which he adopted when he gave up his foreign titles to become a British citizen (told you it is confusing). Mountbatten-Windsor can thus be considered a personal last name for the family to use, and is often used for weddings.
Royal children who do not yet have peerages of their own use Prince or Princess along with their father's territorial title. Thus the sons of "Prince Charles, Prince of Wales" are "Prince Harry of Wales" and (until the wedding) "Prince William of Wales". For comparison, the children of Prince Andrew, Duke of York are Princess Beatrice of York and Princess Eugenie of York.
On his wedding day the Queen invested William as Duke of Cambridge, Earl of Strathearn, and Baron Carrickfergus, and he dropped the "of Wales" entirely. He will most commonly be referred to as Prince William, The Duke of Cambridge, which is the highest of the titles.
When Charles becomes King he will presumably invest William as "Prince of Wales". William will also take over the title Duke of Cornwall, which automatically goes to the male heir to the throne and was traditionally his source of income, and Duke of Rothesay, the title of the heir to the Scottish throne.
Prince William's current full name is:
His Royal Highness Prince William Arthur Philip Louis, Duke of Cambridge, Earl of Strathearn, Baron Carrickfergus, Royal Knight Companion of the Most Noble Order of the Garter, Master of Arts.
Kate is not "Princess Catherine". Prince or Princess preceding your name is a title that is only gained through royal birthright, and Kate is a commoner. However, she did gain the "Her Royal Highness" designation and automatically gains any other titles that her husband attains. She will most commonly be referred to as Catherine, The Duchess of Cambridge but her full married name is:
Her Royal Highness Princess William Arthur Philip Louis, Duchess of Cambridge, Countess of Strathearn, Baroness Carrickfergus.
In case you are wondering:
Diana was never "Princess Diana" even though people often call her that. Like Kate she did not have the proper birthright to use that title. Instead, she was "Her Royal Highness The Princess of Wales" when married to Charles, and was "Diana, Princess of Wales" after they divorced.