Enter email addresses
There are several different ways to specify who gets a copy when sending a new message. The simplest way is to start typing the name of who you want to send a message to in the To: field, have auto complete suggest several matches, and select one from the popup. Then press return and enter the next recipient. While Thunderbird defaults to four header lines it will create more as necessary. Auto-complete is enabled by default in Tools -> Options -> Composition -> Addressing.
If you want to send a courtesy copy (Cc:) or blind courtesy copy (Bcc:) click on the little down arrow to the left of the To: field and select the appropriate header. You can send a message to a list of email addresses by entering the name of a mailing list. Changing the first header from To: to Bcc: and entering the name of mailing list is a common way of sending a message without sharing the email addresses with each recipient.
You can enter more than one email address in a header line by separating each address with a comma. Thunderbird does not support using semicolons to do that like Outlook does (section 3.4.6 in RFC822 states the semi-colon has a different function).
The compose message window has a optional Contacts Sidebar. You can enable it by either pressing F9 or selecting View -> Contacts Sidebar. The setting is sticky. The Contacts Sidebar lists the names of each contact (in the selected address book). You can select one or more and either press the "Add to To:", "Add to Cc:" or "Add to Bcc:" button, or drag and drop them to the desired header line. You can enter a name in its "Search for" field and it will hide any entries that don't match what you're typing (sort of similar to auto complete). The list box normally displays just the contacts name but if you click on the column control (its a squiggly little square on the right) for that sidebar you can also select a "Email" column.
If you have several email address headers in a message you can delete the last header using the Backspace key. However if you press it more than once you wind up deleting characters in the preceding email address. Version 60 added a 'X' widget that appears if you hover the mouse over the To/CC selector, that you can use to delete the entry.
You can select a contact in the address book and press the Write button to open the compose message window and add that email address to the To: header. Its recommended that you do not use it as its not designed to let you select more than one recipient, doesn't support CC: or BCC:, and unpopular features like it tend to get little testing/maintenance.
Auto complete uses both the main and additional email address in a contact. It alphabetically sorts entries in the pop-up. However, if you have sent a message to a contact three or more times auto-complete will sort the entries alphabetically, but it will list the main address before the additional email address for that contact.
If you use a comma to enter more than one address in a header it does not auto complete them when you press Tab or Return. That was supposed to be fixed in 3.0.2 but is still broken. 
Auto-complete is not designed to find matches based on just the domain. If you want to do that use "Search For" in the optional contacts pane instead. It doesn't have that limitation, it suggests contacts based on any part of the email address that matches.
mail.compose.addresswidget.numRowsShownDefault manages how many lines are displayed for addresses. It defaults to 3. You can change it using the Config Editor (Tools -> Options -> Advanced -> General if you are using Windows). This is basically the opposite of mailnews.headers.show_n_lines_before_more which manages how many addresses are displayed when opening a message before the "more" appears.
The Address Widget Lines add-on lets you specify how many header lines to display by default. However, it doesn't seem to be available on AMO anymore.
The Allow Local Addresses add-on lets you use email addresses without a domain. This is useful if you're sending messages to somebody on a corporate LAN.
The Contacts Sidebar add-on replaces the built-in Contacts Sidebar and displays an address book in a sidebar within Thunderbird's 3-pane window (main window). It supports several shortcuts that can be used to enter a message. However the current version does not work with Thunderbird 3.1 or later even if you disable version checking. There is a download link for a 1.7 beta in a post at The adopted home of Contacts Sidebar forum that supposedly works with recent versions.
The Contacts Tab add-on adds a search field to the main toolbar that can be used to search for contacts across all of your address books using their email addresses, names, phone numbers, organization or addresses. It opens a tab with the contact details. However, it does not support LDAP directories or any way to copy the email address.
The MoreFunctionsForAddressBooks add-on supports choosing which address book to use for auto-complete, per identity. Each account has a different identity.
The Multi-LDAP add-on lets you use several LDAP directories simultaneously for auto-completion.
The MailTweak add-on has "Address lines" (can move the splitter at the top of the message body upwards to reduce the number of address lines), "Bcc by default" (makes Bcc: the default instead of To:) , and "Personalize messages" (creates an individual copy of the message for each recipient, regardless of whether the recipient was originally specified using To:, Cc: or Bcc:) tweaks. MailTweak doesn't support version 3.1 or later so you need to install the add-ons compatibility reporter add-on beforehand to disable version checking, in order to install it. Ignore the warning message in the add-ons manager about MailTweak not being compatible, its just complaining that you are ignoring the add-ons maximum supported version field. This add-on can cause serious problems with versions later than 3.1.
The Toggle compose headers add-on lets you press Ctrl+H to hide/unhide the headers.