Most likely, you nested tags and closed them in the wrong order. For
example e
<p><em>...</p> is
not acceptable, as <em> must be
closed before <p>. Acceptable
nesting is:
<p><em>...</em></p>

Another possibility is that you used an element which requires a child
element that you did not include.
Hence the parent element is "not
finished", not complete. For instance,
in HTML the element must
contain a child element, lists
(ul, ol, dl) require list items (li,
or dt, dd), and so on.

The relevant bit here of course is "you used an element which requires a child element that you did not include"

I think of lists the same way I think of sets (a set can be empty, contain only one element, or contain more than one element). If you don't allow sets to contain 1 or 0 elements, you break set arithmetic. For instance, the intersection of two sets should always return a set. Even if that set is a set of one or zero. If you say the intersection of two sets should always return a set, unless that set only contains one element in which case it should return an element, or if it contains zero elements in which case it should return 0. In reality, it is only consistent if sets are allowed to be sets of one or null sets. Same thing with lists. Every list can be expressed as the sum/union of two lists. The null list can be expressed as the union of two null lists. A list containing 2 elements can be expressed as a union of two sets each containing one element. Et "set"era.