There's a nice little article on HTML5 semantics on HTML5Doctor.
Semantics have been a part of HTML in some form or another. It helps you understand what's happening where on the page.
Earlier when was used for pretty much everything, we still implemented semantics by giving it a "semantic" class name or an id name.
These tags help in proper structuring and understanding of the layout.
If you do,
as opposed to,
OR
as opposed to,
there's nothing wrong, but the latter helps in providing better readability for you as well as crawlers, readers, etc..