1.) Allow for multiple blogs. Have a ‘blogs’ table, and every post should have a ‘blog_id’ foreign key. User permissions could be set up so access could be restricted per-blog.
2.) Base your theming engine off of Views. There’s always a trade off between having a pure MVC-style app and one that you can distribute and expect people to muck with. Think about theming in Wordpress: You’re essentially calling in posts and plugins for the given template, kinda Controller-ish, but not completely. All WP does on this front is call the template with some vars set. Something like Drupal, on the other hand, favors configuration in the admin over making custom calls from templates, although the latter is still an extra option.
3.) Go for a robust plugin architecture. The beauty of building on CI is that all people would need to do to extend your app is create their own models, views, and controllers. But they need ways to interact with the blog app, most likely via views, models, and libraries. In this respect, you need to develop a solid API for interacting with the core features of the blog app. The other option to consider is an event-driven or aspect-oriented system, whereby plugins can react to events in the blog app and perform actions respectively.
4.) Easy installation. CI can gain ground via your blog app if it is easy for average Joe to download and install, like WordPress.
Those are just a few to consider, and they are certainly things I’m considering for blogenfuego.com 😉 Good luck.