I see a number of "not found errors" for my website inside Google Webmaster's tools. I have a niche classifieds site and these errors are basically for the page listings that expired . I setup a notification saying The Ad has expired for each of these pages but i believe it's still harming my rankings on google. What's the proper way to fix them?
301 redirects are good to redirect those old urls to the new ones. I believe that to be the best way.
Redirect is the best way to solve this problem. You should redirect not found error pages at related categories page or home page of the website.
If Google detects that your site has time sensitive content then it follows that they would expect to see missing content in your results. Ask yourself what it will think when it never finds any? Many years ago, when we used to study visitor logs more closely than today, googlebot started requesting ridiculous page names. Why? Because there was a trend to catch all 404s, generate content and present the page as genuine. By asking for pages that could never exist they caught out all those employing the 404 trick. What makes you think they're not still doing it?
I won't suggest that you redirect them to the homepage. If the page is of no use anymore and is creating thin duplicate content, delete it.
You should also create a "Custom 404" page for your website. It might help you keep some of that "not found" traffic.