<input> button's text is specified in its
value attribute, which means it can only be a simple text string. If that's all you need, using an
<input> is the way to go.
<button> can have much richer content, even block-level elements. If you need a complex button you should use a
<button>, but it does have some issues in some browsers.