Setting heights is fine as long as you are are sure it will never be exceeded. However what happens if a caption wraps (either when you have more text or the user resizes the text in the browser) and then you are back to square one
<p> <a target="main" href="https://www.facebook.com/media/set/?set=a.361190717314486.1073741869.135827796517447&type=3"> <img src="http://www.rawfeddogs.org/adoptions/hng.jpg" width="251" height="190" style="border-width: 0px" /><br />
Hansel & Gretel playing together in the yard</a></p>
Using inline-block instead of float as Ralph suggests will avoid this issue altogether.
Support for IE7 and under can be added quite simply (if needed).
*display:inline;/* ie7 hack for inline-block */
zoom:1.0;/* ie7 hack for inline-block */