Asp.net Controls - should be used when you want to do server-side manipulation. (i.e. Having runat="server")
Example: Let say a simple application with input textbox for name. Based on user input you want to display greeting message to user "Welcome UserName". In this situation it is good to go for asp.net textbox control.
Html Controls - should be used when you don't want to do any server-side manipulation. (i.e. NO runat="server")
Example:
displaying horizontal rule (<hr> tag)