If you want to make the controls you create easily accessible to your editors, one way is to use dynamic content yes, another is to use EPiServer Composer or Webparts.
It all depends on what you're trying to achieve.
Hope this helps.
Even if you don't let the editors place the controls, but just use them in the templates of different projects, there is one thing to keep in mind. Having user controls or pages in a separate project is a bit messy, you have to copy the controls into your project root upon build. And likely, because the controls don't exist inside the web root at design-time, you'll have problems with intellisense, generating fields in the designer file etc. You can do it, but it will be messy. So IMHO you should go for creating WebControls even though it's a bit more work both creating and updating.
We have around 15 sites and planning to create some reusable controls for all the sites like login control. We should place these controls seperate from the project and need to just refer to these with the help pf common dll's. Can we achieve this with the help of dynamic content controls?