Wysiwyg

The WYSIWYG module is my favorite for rich text editing in Drupal 6 and Drupal 7. (In Drupal 8, WYSIWYG is in core.) Here's how I set it up.

Title

This module, in a basic sense, allows the title to be an actual Drupal field. This comes in especially handy when doing translations, as titles are not translatable in core.

Field group

"Fieldgroup will, as the name implies, group fields together. All fieldable entities will have the possibility to add groups to wrap their fields together. Fieldgroup comes with default HTML wrappers like vertical tabs, horizontal tabs, accordions, fieldsets or div wrappers."

Media

"The Media module provides an extensible framework for managing files and multimedia assets, regardless of whether they are hosted on your own site or a 3rd party site - it is commonly referred to as a 'file browser to the internet'.

Media is a drop-in replacement for the Drupal core upload field with a unified User Interface where editors and administrators can upload, manage, and reuse files and multimedia assets....

File entity (fieldable files)

"File entity provides interfaces for managing files. It also extends the core file entity, allowing files to be fieldable, grouped into types, viewed (using display modes) and formatted using field formatters. File entity integrates with a number of modules, exposing files to Views, Entity API, Token and more."

Token

Gives replacement tokens. This module is used by so many other modules, you are sure to use it and learn it if you haven't already.