Both of these content management systems are very powerful, but determining which one is best for you depends on your needs, budget and what you are wanting to accomplish with your website.Wordpress - Popular, SEO-friendly and Easy CMS
Wordpress started out as a blogging platform and has been accredited with great acclaim for being search engine friendly. Wordpress is free for anyone to use and easy to install. There is also a large community of developers that create plugins that allow you to extend the functionality of Wordpress. For bloggers and lower-budget websites, Wordpress has a lot of really good-looking themes that you can install. A theme in Wordpress is basically an out-of-the-box ready-to-go website that you can use as-is, or you can customize.
A good web designer and those with the moxy to learn how, can create their own Wordpress themes and fully customize the look of their website in any way they want. The down-side to this is the amount of hacking through php that is required in order to do many simple tasks. One of the best things about Wordpress is that it is really easy to use for the end-user once the website itself is built.Expression Engine - you get what you pay for
A very powerful and customizable system, Expression Engine works much differenty than Wordpress. Unlike Wordpress, Expression Engine is a commercial license for $299.00 USD. It does however offer some very big advantages for developing complex websites. Expression Engine basically allows you to build your CMS from the database up. But the best part about is that you can use a very logical API that allows you to do this without database programming knowledge. For front-end developers this system is very useful because you don't have to do as much hacking as you do in Wordpress. The API plugs right in easily so you can focus on making your HTML/CSS code clean instead of keeping track a a bunch of different PHP echos and calls.
You create data in a different way. Types of data are stored in channels. You create a channel say, "about us" text on a website, and then you can display that information any way that you want on the front-end. You simply put in a snippet of code into your template you designed and whalla! You have a functioning CMS for that page.
Expression Engine's real power is in creating more complex websites. The possibilities that you can do with it are endless, and, once you get past the initial learning curve, you can build very powerful websites very quickly.