Markup is the very foundation of a site, it's what everything stands upon when the page is presented to the user, and I believe it's really quite important to take care and attention writing it. Indeed, as rob says, quality of the markup should take priority over quality of the syntax, but it's not exactly difficult to create valid code, is it?
That said, many rendering errors and display issues can be nailed down first to a typo or mislaid tag in your code. If you write valid code, you remove a huge amount of debugging work that needs to be done. If you know your code is correct then you only need to look to the browser/user-agent manufacturer for the blame. That alone seems to be enough of a benefit for ensuring validation.
However, there is one area where validation is fundamentally important, and that's in authoring XHTML. XML parsers aren't meant to have any of the loose rules and acres of error correction that the SGML parsers for HTML have in today's browsers. If you're authoring XHTML, you should be ensuring your code is all present and correct in order that it can be used as intended.
Oh, and search engines prefer valid code - they've got to process your documents just as a browser does. Error-checking, and stripping of redundant data to extract the good content. The more invalid your code is, the more likely they could ignore some juicy bit of content that would have got you right on page 1 of Google.