HTML Forms are often laid out with two-column tables with the label in the left column and the form field in the right. One could argue that there is nothing semantically wrong with this as the labels are really like headers for the values in the form controls. However, that argument falls apart when table cells are joined (with colspan) to fit wider form controls such as textareas.
Even if you were to carefully layout the form so that the label were in the left column and the form field in the right, the table is not needed. The label tag serves the purpose of providing a "heading" for the form field.
In this lesson, we'll learn how to layout forms without tables using CSS.