That depends on what you want to do with your dll's.
Let's say you create a custom control for your project and want to re-use it in different projects. In this case you would create a dll which contains your custom control. Now in your other projects you simply have to reference your dll and you're set to go. If you didn't make a dll out of your control you'd have to reference the entire different project, which does not seem like a good idea.
So basically the amount of dll's you need depends upon how much of your code you want to use in other projects.
Here are some articles on good design[
^]. The first five are all about SOLID principles. The remainder is about how to structure your dll's (or at least one way to do it). Hope it helps.