Daniel hat ja eigentlich schon das wichtigste gesagt:
Der Hauptunterschied ist, dass ein <input type="button"> nur einen
String als Beschriftung haben kann, schwerer zu stylen ist etc., während
ein button beliebigen HTML-Code, also u.A. auch Bilder, schön
formatierten Text etc. enthalten kann.
Mich wundert nur etwas, dass Daniel trotzdem standardmässig <input>
benutzt - denn weil <button> damit deutlich flexibler ist, gleichzeitig
aber kaum Nachteile hat, würde ich persönlich standardmässig immer
<button> nehmen.
Ein gewisser Nachteil des <button>-Elements soll aber wohl sein, dass
sich das <button>-Element in ur-ur-ur-alten Versionen (6/7) des Internet
Explorer innerhalb von Formularen anders verhält.