I've been using a form of this, enhancing it over time.
Here is my current version:
" This command was posted by Piet Delport a few years ago.
" com DiffOrig vert new | se bt=nofile | r # | 0d_ | difft | winc p | difft
[cut]
com! DT sil on! | let oft = &ft | vert bel new
[remainder of mappings trimmed]
Just a caution on the dangers of "on!"...it looks like, if you
have other windows open, and there are changes in them, your
mapping will silently discard/hide them. They'll crop up again
when you try and quit later, but it's an unexpected sort of
side-effect when what you really want is just to diff the current
window with its original contents.
Caveat scriptor...
-tim