I am biased toward Drupal as I use it heavily, but here are my thoughts.
Typo3
I've not used Typo3 before so I have no comment. :P
WordPress
WordPress is a good choice for blogs and small sites. It has a huge community, lots of themes and plugins, and a simple interface. It is really easy to get up and running and start using.
However, if you plan on building a community site with features beyond that of a blog, WordPress probably isn't a good choice. While it can be hacked into being a general CMS, it doesn't handle that type of functionality as well as other products do.
I've done a bit of WordPress development and I wasn't impressed. I can't speak for WordPress 3 but the 2.x version that I used was not pleasant to develop under. The code seemed disorganized and confusing.
Joomla
Joomla is also a good choice for small to medium sites. It can do more than just blog, has a lot of themes, and a fairly intuitive interface. The community around Joomla is different when compared to WordPress and Drupal. I've found that there isn't as much cohesion in the community and I think this is reflected by the fact a lot of the better Joomla plugins are not free. Plugins tend to stand by themselves and do not build on the functionality of other plugins.
You'll also run into growing pains with Joomla if your site eventually requires more complex content workflows, permissions, and content categorization. Joomla's user permission system is quite rigid and has predefined roles that cannot be changed. Content can only be categorized up to two levels deep.
My opinion is based on Joomla 1.5.x.
Drupal
Drupal has a very vibrant community. The usage of the software is expanding quickly and it is starting to be used more heavily in the corporate world. See this link for a list of larger name Drupal sites. It is by no means a complete list. :P
Drupal is developed by the community that uses it. Anyone can contribute code to the code base. Development is very active. Out of WordPress, Joomla, and Drupal, Drupal is definitely the most flexible and extensible. There are many modules. Modules in Drupal tend to be more generic and require additional configuration, but they are also highly flexible and very powerful. Many modules actually extend other modules, creating an ecosystem of modules that can provide very advanced features.
Internally, Drupal is not class heavy as it was written in the dark days of PHP 4, but the code in general is mostly clean and straight forward. There is a clear API for building modules and themes and the API allows them to even modify how the core of Drupal operates without actually changing core source code. Most of the default front end code can be stripped out if you like and replaced with whatever you want.
That said, Drupal has, in the past, been a developer centric tool and is not as easy to use out of the box as WordPress or Joomla. A primary goal of Drupal 7, which will be releasing within the next few months, is to make using a Drupal site significantly easier out of the box. Drupal 7 also packs a lot of features for the enterprise, like better database support and easier use of a multi-server database backend.
If you want software that will be able to scale well, Drupal is a very good choice. It has a learning curve for sure, but it is very versatile.