Pages that are valid (x)HTML generally display uniformly across different browsers. They are more user-friendly because of this, and are accessible since they will display properly in text browsers and screen readers for the blind. Search Engines are searching for content and generally ignore markup validity. However, if you are using CSS to control how your site is displayed (like you should) valid markup is a must to get it to function properly. And we all know that CSS based websites load faster, are more easily and efficently updated, and decrease the bandwith usage on the server.
One of the ideas behind using valid markup is to ensure the language you use to define the structure of your page is understood by as broad of a range of browsers as possible. You should also see it as one of many significant steps towards trying to meet at least some level of the Web Content Accessibility Guidelines (WCAG) initiative.
Semantics sould also play a key part of your page creation too. This is something (as far as I know) that search engines like. A simple example of this would be the headding of a news article.
Putting a news artictles title or headding in <font> tags with size=+2" might make it look more like a headding. But to Google it means nothing. The title of your article will have no more importance to google than a word in your menu. In fact your menu may well mean more to google than your content because they are links. Putting your headdings in headding tags however
(as far as I know) is a completely different story and google will see your site as one that is in some way related to what is in your headding tags. More semantic, meaningful markup can also be of assistance to those with non graphical or assistive browsers.