There is a wide spectrum of ways to create new Web sites, starting with solutions that require no coding at all, such as Weebly and WordPress, all the way to coding your Web site entirely by hand using a text editor like Vim.
ExpressionEngine (various pricing, buy-only) is a serious content management system that sits close to Vim on that spectrum, and has a vibrant community of users and developers.
Traditionally, one of the main problems of using a content management system (CMS) such as WordPress is that your Web site ends up looking like a WordPress Web site. Meaning, no matter how much you play with the graphics, colours and typography, the basic layout of the page often still looks like it was made with WordPress.
ExpressionEngine solves this by being completely open-ended and not enforcing any sort of hierarchy or default layout. In fact, when you first install it, your homepage shows nothing: Just a blank, white page, completely devoid of any markup or skeleton structure. This makes building a new Web site significantly harder, but it also makes it possible to achieve almost any layout you can think of.
ExpressionEngine is aimed at experienced Web developers: Just to get started, you need to upload it via FTP, change file permissions manually on a list of folders and files, create a new MySQL database manually, and then provide its credentials to the ExpressionEngine installer. If you know how to do all of that, and have a good understanding of HTML and CSS, you will probably be able to handle ExpressionEngine.
This is not a system you are supposed to just play with until you figure it out, but thankfully, its documentation is excellent. Once you get it installed, you use a slick control panel for creating content and presentation templates, but you still need to code your templates as pieces of HTML using that interface. To embed content into your templates, you will have to use special ExpressionEngine tags, which are clearly explained. There is also an excellent Getting Started tutorial that introduces many of the concepts you will need to get started, such as Channels (pieces of content) and Templates (controlling presentation).
ExpressionEngine is priced to make it easy to get started: EllisLab offers a $100 Freelancer lincence, which you can use exclusively for building your own Web site. The next level up is the $150 Non-Commercial lincence, strictly for non-commercial, non-profit, or educational Web sites. If your project is commercial, you will need the Commercial lincence, which costs $300.
If you’d like to use ExpressionEngine but don’t want to code a theme from scratch, Web sites such as ThemeForest offer commercial, ready-to-use ExpressionEngine themes.
Then again, if you’re considering using a ready-made theme anyway, you may be better off with WordPress. It is not as open-ended as ExpressionEngine, but doesn’t have its price tag and initial learning curve, either.
If you are an experienced Web developer looking for a powerful CMS that allows complete customization, check out ExpressionEngine, but be prepared to spend some quality time with the documentation.