Both will carry a digital signal to your display.
DVI supports custom resolutions and refresh rates, while HDMI supports only standard HDTV resolutions ~ esentially the 480p - 1080p HDTV standards. The HDMI cable is thinner and more flexible than a DVI cable, and carries sound as well as video. Any device with DVI output can feed a HDMI input, put you may not be able to convert from a HDMI signal to DVI input on a display.
Personally I prefer to do scaling on my HTPC and feed my digital display with DVI in its native resolution, and feed the audio seperately to my receiver.
Good luck.