I finally wanted to know the difference as well, so I dug into the source and found the answer; in most cases there will be no discernible difference, but there are a bunch of edge cases you should be aware of.
Both ->nodeValue and ->textContent are identical for the following classes (node types):
DOMAttrDOMTextDOMElementDOMCommentDOMCharacterDataDOMProcessingInstruction
The ->nodeValue property yields NULL for the following classes (node types):
DOMDocumentFragmentDOMDocumentDOMNotationDOMEntityDOMEntityReference
The ->textContent property is non-existent for the following classes:
DOMNameSpaceNode(not documented, but can be found with//namespace:*selector)
The ->nodeValue property is non-existent for the following classes:
DOMDocumentType
See also: dom_node_node_value_read() and dom_node_text_content_read()