If you don't set the pointer to NULL, and you attempt to use it again, your program will most likely do strange things, as the memory it points to is no longer guaranteed to be valid. Also, if you try to delete it again without setting it to NULL, your program will most likely die a horrible death. Pointers should almost always be set to NULL after they have been deleted.
TonyM123: Although it's not an elegant solution, you could always take advantage of the preprocessor. Something like:
#define SafeDelete(p) { delete p; p = NULL; }
I don't think there is a good way of doing what you are looking for.