Here is a list of my favorite Drupal tools that aid in developing, managing, and maintaining a Drupal website.
Drush [6]
Versions supported: All Drupal versions
To quote the module description for drush:
"Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt."
The main reason I love "drush" is because it allows you to download, install, uninstall, and update Drupal modules right from your command line. A few simple commands like:
drush dl views
drush en views, views_ui
With these two lines, I've downloaded and installed the latest recommended release of the Views module. No need to fumble through the administration menu to download and enable modules. Just two lines and you're done. This feature alone should be enough to get you on the drush bandwagon, and once you start using drush you'll realize it does so much more [7]. Another cool thing about using drush is that there are a lot of Drupal modules/tools that integrate with drush. So if you're not using drush now, go out and get it.
Admin role [8]
Versions supported: Drupal 5 - 6
This module is more for developers of Drupal 5 - 6 websites. It allows you to grant a specified user role all available permissions. One frustration I had while developing Drupal 6 sites (without using the main super user account) was having to update user permissions everytime I enabled a new module. I'd spend hours trying to figure out why a module wasn't working correctly, just to find out that it was because I forgot to grant permissions for my user role.
No need to worry about this if you're developing a Drupal 7 site, because the functionality of Admin role has been integrated into Drupal core.
Devel [9]
Versions supported: Drupal 5 - 7
Devel is a handy suite of modules that were specifically made to aid developers and themers. It is great for debugging and analyzing your Drupal site. I use Devel on every Drupal site I build. Honestly I use Devel's kpr() [10] function everytime I have to build my own custom module or preprocessor.

Diff [11]
Versions supported: Drupal 4.7 - 7
I basically use this module in conjunction with other modules like Hacked! and Features. It allows you to view changes between two revisions of whatever you're looking at, whether it's a node, feature, module, etc.
If you're going to have any kind of feature tracking or content moderation system on your Drupal site, the Diff module is a necessity.
Features [12]
Versions supported: Drupal 6 - 7
Here at Forum One, we often have to enhance already published sites and work on large sites in conjunction with others. There are a lot of hurdles faced when working on a site simultaneously with another party. Using Features reduces a great deal of the headaches associated with such circumstances.
One of the hardest things to keep track of when managing a Drupal site is the configuration settings on the site. These settings are only stored in the database, therefore making it difficult to capture in revisioning tools like Subversion. Features solves this problem by allowing you to export Drupal configurations and settings to the file system in something called a "feature." Once in the file system, database configurations can be stored in your file repository. With Features I can build out a part of my site on my local machine and import it to my website with little configuration needed after the feature is enabled.

Once you have all your features setup, you can keep track of overrides using the Diff module. You can see line-by-line differences between the stored feature and your website. This is very handy when working with others on the same site.
Did I forget to mention that Features integrates with drush? Well, It does! You can update, import, revert, and manage your features all within the command line. You can update a feature by opening your command line and typing:
drush fu my_cool_feature
Hacked! [13]
Versions supported: Drupal 5 - 7
Hacked simply tells you if any of the contributed modules on your site have been overriden since download. With the Diff module, Hacked! allows you to see changes on a line-by-line basis. This module is great for testing to see which contributed modules you may need to patch. Hopefully, you should never have overrides in Drupal's core modules. If you do have overrides in core, shame on you! [14]
Backup and Migrate [15]
Versions supported: Drupal 5 - 7
Backup and Migrate is used to backup your Drupal Database. One great thing about this module is that it integrates with drush, allowing you to backup your database by simply typing:
drush bam-backup
Rubik [16], Cube [17] (Admin Theme)
Versions supported: Drupal 6 - 7
Rubik/Cube is by far my favorite admin theme for Drupal 6 (with a slight preference for Cube). Though Cube is no longer supported by the maintainer of the theme [17], Rubik is still a close second. This theme is both beautiful and functional. I mostly use this theme for my Drupal 6 sites, because in my opinion, Drupal 7's default admin theme works just fine.

Admin [18]
Versions supported: Drupal 6 - 7
The Admin module provides an improved admin menu interface. The module goes hand-in-hand with the Rubik theme. They can function without each other, but why would you want to separate such a cute couple?

The aforementioned tools will save you both time and frustration and get you well on your way to developing or effectively managing your Drupal website.
Know of any great tools I missed? Add them to the comments.
A list of web programmer Norman Bucknor's top nine favorite Drupal development tools and modules that he uses to build large, complex drupal sites.