There are blogs a-plenty online with module recommendations and lists for Drupal. So... here's another one, from my perspective.
This version is for Drupal 6. While 7 is gaining a lot of ground on a daily basis, doing a lot of great things older versions of Drupal couldn't, at this moment 6 is still the more mature platform. With the help of Pressflow, you can get D7-like performance out of 6 as well.
I've divided the article into a few separate sections, based on the importance and utility of a module. Note that the title of a module links to its project page on Drupal.org.
Essential
Modules that I consider essential for practically every Drupal site. As always, there may be reasons not to use some or all of these, but those would be rather specialized cases.
CCK - Content Creation Kit
Attach arbitrary fields to content without resorting to custom code. This module was considered important enough that it got included in the core distribution of Drupal 7.
Views
The one-stop solution for displaying data in pretty much any fashion. Lists, tables, XML-based feeds of practically any data that resides in either Drupal's core storage or with prominent modules.
Pathauto
Automatically create better URLs for all content. As a big plus it's highly customizable, thanks to the next module...
Token
...that allows the usage of placeholder tokens in text fields. The placeholders get replaced with real content when used. Works very well with a lot of different modules to make dynamic text a lot easier.
jQuery Update
Since major Drupal versions don't do big updates, the jQuery version generally stays the same throughout its life. This module updates Drupal's JavaScript to work with jQuery 1.3.2 instead of the standard 1.12 that comes with Drupal 6. There really isn't very many good reasons not to use this, I've found that virtually all other modules work just as well with the updated jQuery.
Backup and Migrate
Schedule and manual backups, for storage on the server, download and other means. Who wouldn't want backups?
Drush
While technically not a module, I consider Drush to be a must-have. If you can't have it on your hosting, get hosting where you can have it. Great tool for administrators and developers alike. More and more modules are starting to integrate with Drush as well, giving very quick command line access to many things.
Specific Essentials
The distinction here is that these modules perform more specific functions, and are not necessarily essential for every website.