If you click on the URL in the Crawl Errors report you will get a popup containing a "Linked From" tab. In that tab, Google will tell you where it found the link to those pages:

You may find that they are:
- Broken links on your site
- Broken links on 3rd party sites
- Text URLs Googlebot discovered that are not linked
- Bits of JavaScript that Googlebot thinks might be URLs
Your own site crawl is only likely to find the broken links on your own site. Since Googlebot crawls the whole web and has heuristics for finding what it thinks might be links, it will find more errors than your own crawl of just your site.
I would only fix a 404 error if it effects users as well as Googlebot. Broken links from your site are always worth fixing. Broken links from 3rd party sites are worth fixing if you can tell what they are supposed to point to. Googlebot stupidity of picking things that could be links out of JavaScript is just noise.
Google expects properly functioning sites to have some 404 errors. In fact, Google gets worried if Googlebot never gets a 404 error for any URL, especially those that should be junk. As long as the URLs that are returning a 404 are not supposed to have content, those 404 errors will not hurt your site in any way. It doesn't matter if there are 10 of them or 10 million of them.
There are a few basic methods for fixing crawl errors:
- Remove the link to the 404 page if it is on your site
- Fix the link to the 404 page such that it points to the correct thing
- 301 redirect the 404 URL to the actual page (ex:
/page.ht
-> /page.html
)
- Put up a new page of content at the error URL