The primary reason to set the width and height in html is so that the browser doesn't have to reformat the page when it gets around to loading the image. I'm sure everybody has seen a web page come up text first, then flash and reformat the screen for each image. When the browser knows the expected size beforehand, it can format the text appropriately, and doesn't have to adjust it later. I believe browsers are getting better at handling this these days though.

That being said though, there are times when it's more of a bother than necessary, or the image size is not known ahead of time (say you're displaying random images, and the proper size for one image may stretch another grotesquely). It therefore shouldn't be a requirement.