I've been writing custom business applications (web and otherwise) for over 10 years now. I've done the build-from-scratch route an awful lot, and I've poked around in most of the popular CMS/E-commerce products that are out there. Here's where I and on the debate...
Coding up some quick scripts and crude internal apps that aren't customer/user facing are really convenient with a raw programming language with no frameworks or bloat to fight through. You can build a good amount confidence doing stuff like this but you can also learn some bad habits. I would highly recommend reading about design patterns. It's so easy to program your way into a corner and have little chance of making changes without a complete rewrite.
Frameworks (CodeIgniter, Cake, Zend, Yii, etc) handle the organization for you and provide quick ways to do the most common things. Some are better than others. The best ones will allow you to do things your way-easier and faster.
Above frameworks you get the solution-in-a-box type systems like Wordpress, Drupal, etc. They each have "their way" of doing things; you are expected to do it that way, or not at all. They can be powerful, but also very frustrating, especially if you know what you want to do in programming terms but not in their terms. They can be very powerful, but also very constraining. Some are better than others, but either way be prepared to adopt their philosophies and culture to make anything really work.
If you needed something up and running ASAP and really needed the money, I'd probably suggest you use as much off-the-shelf as you can. But to learn to be a bad-ass programmer and really respect the work that you've done? Ditch the off-the-shelf stuff. Personally, I've never had "fun" working like that. There is something to be said however for not reinventing EVERY wheel you need to use. The key is understanding what your options are for libraries, frameworks, etc and making choices that benefit your project. I wouldn't go out and just pick a fancy framework that gets a lot of hits and get started. Read about design patterns and figure out how YOU would organize a big project. Then check out some of the frameworks and see if any of them fit your style.
If you try to do it completely from scratch, good for you! Just be willing and comfortable with scrapping a lot of work and starting again. It will take a lot longer, but you'll learn a hell of a lot more than piggy-backing off of some high-level drag and drop publishing engine. If learning is your goal, you'll need to celebrate the failures along the way. You'll also gain a much, much deeper respect for the libraries, frameworks, and other things you do choose to adopt along the way because you'll have a better idea of what went into them.
Hope this helps! Good luck!!