A custom 404 page is necessary.
Rule of thumb for SEO: do things that help the human visitors to your site.
Yes, try to avoid 404 errors wherever you can, however you can, within reason. For instance, install a Smart 404 Redirection plugin or module so that visitors arrive at their likely intended page in cases where the URL provides some information, but may be truncated or mistyped. DEMO: Watch what happens to the URL you arrive at from this broken URL: glennfriesen.com/g
Also, keep current with your GWT 404 reports, and set hard 301 redirects for commonly 404'ing URLs.
However, what if someone really typed in some gobbletygood url, or clicked on a Link that provides no information about the destination, so Smart 404 Redirection can't take hold? In that case, provide a custom 404 page. DEMO: glennfriesen.com/a