All good answers, but there's one difference I haven't seen mentioned yet, and that's how browsers render them by default. The major web browsers will render a <p>
tag with margin above and below the paragraph. A <div>
tag will be rendered without any margin at all.