Forum Moderators: open
Other possible tags to consider (depending on the circumstances):
<blockquote> Defines a long quotation
<cite> Defines a citation
<code> Defines computer code text
<dfn> Defines a definition term (e.g. scientific name)
<pre> Defines preformatted text (usually monospaced)
<q> Defines a short quotation
<samp> Defines sample computer code
So the choice of div or p does not really matter: either way the markup is not semantically rich enough to say what the div or p means. Is it a product description, a disclaimer, an advert or a lump of marketese? You can't tell, and neither can a computer. (X)HTML markup is purely structural, presentation-level information.
Confusion arises due to the widespread use of the term "semantic markup" which has come to mean using the most appropriate (X)HTML tag for a page element, if an appropriate tag exists. IMHO "structural markup" is a better term to use. Many (most?) folks now think "semantic markup" makes the content compatible with the "Semantic Web" - just because they use the same word. It doesn't, the Semantic Web is a *lot* more complex than that.
A simple sentence like "Our company sells widgets" on the Semantic Web would need to be marked up to identify which company the assertion refers to, what "sells" means in this context, and what "widgets" are. Current (X)HTML can't do this: it's a semantically-poor format.
Adding another sentence "Our company is located in London" (with "our company", "located" and "London" explicitly defined) would theoretically enable Semantic Web users to query for "all companies located in London who sell widgets" and find the company's site. Hopefully the limitations and potential for abuse of this approach are self-evidently clear even with such a simple example.
(BTW there should be a big "As I Understand It" attached to all the above ;))
See:
Semantic Web in Scientific American [sciam.com]
W3c's Semantic Web info [w3.org]