The most common reasons that a server will return a 404 error page are:

Most 404 custom error messages tend to be generic, and not particularly user-friendly, so making custom messages for a site is highly recommended. We recommend you create a custom 404 error page with the same look and feel as your current website.

Here is an example of a bad 404 error page.

This page has no branding, no direction on what the user should do next, and no search box. You could potentially loose a customer who may think your site is down. Don’t let this happen to you.

A 404 custom error page should contain these elements:

You can get ideas on how to layout your 404 error pages by going to sites such as Apple or Microsoft.

Additional Resources:
Google on how to make your 404 page more useful:

How to create 404 custom error pages on both IIS and Apache: