Aside from those functions mentioned above by Eric, One of the other important functions of the watch dog is to supervise the embedded software. At some point in the code, it has to strobe the wdog, or kick the dog as some software winki dinks call it.
The idea is, as long as the code is running without a hitch, the wdog is strobed, but if the code locks up, the strobe is not generated and the wdog times out and resets the board. Some systems have a way to store the last code executed in memory which can be read by debugger tools.