There is only one thing you need to grow a blog. It must be remarkable. By that I mean it must be worth remarking upon. This can be because it is great, solves a problem, is notably bad, or anything else. The only thing it cannot be is average. No one remembers average.
SO grows because whenever a developer asks a SO user "how do I find out about X?" the SO user can't help but remark that SO is the place to go. This happens because SO is worth remarking upon.
If you have yet to find it, dig up a copy of Seth Godin's "Spreading the Idea Virus". He talks at length about ideas and how they spread.
I assume that you have some readers already. Write for those readers. Write for them in such a way that they feel excited, pleased, enraged, or in some way provoked to a reaction. I strongly recommend writing in such a way that you satisfy a need or solve a problem for them that no one else can or has.
Once you have started to really scratch whatever itch your readers have, they will find it hard not to share your blog with other people. People tend to share things that will make them happy, look helpful, or seem interesting.
You can make sharing easier for them by providing the right social media links for quick and easy sharing, writing catchy headlines (CopyBlogger is a great place to learn about headlines), and asking them to share after a post.
You can reach new readers by guest blogging, commenting with great and insightful comments on related blogs, and generally being sociable. However, if you have not got anything that scratches an itch for your readers, then you are not ready to do that.
Everything that drives traffic to your blog is only of value to the degree that your blog has content that pleases, excites, or energises readers - in other words, it is remarkable.
If your content is good enough you can get away with bad design. Good design reduces the barrier to entry but really what makes a blog grow is great content.
I find that I get good success by monitoring Facebook groups for questions that I can answer and the writing blog posts to answer those questions. Then, when I publish, I share that post with that group knowing that there will be a hunger for that answer.