Well, the user of server controls makes your site slower. Those controls must be processed in the server and finally renders out in equivalent HTML tags. If you use directly HTML tags, that processing does not happens.
So, if you can, use HTML tags. When do you have to use server controls? Well, it's easy... when you need to access those controls on the server.
Imagine this scenario (it's a real scenario based on a real web application I'm working with): I have a web site that must be able to show in different languages by user selection. So I have many labels and other controls that, depending on the user language selection, must show different texts. The algorithms and processing that does the translation relies on the server. So I need server labels, because on each Page_Load I've got a code that recursively get all the server controls on the page and applies the translation based on session variable holding the user selected language. In these same pages, I show images that doesn't need translations because doesn't contain text. So for those images I dont use the Image server control, but I use the
HTML tag.
Hope that helps.