DropMenu can handle multiple menus and you don’t need to duplicate it. Snippets usually take some parameters (possibly the "tags" you are referring to) which are used to modify their output. You can have multiple snippet calls on a page and they can have different parameters (some snippets are not designed to work multiple times on a page though). Just as a side note, the more advanced successor of DropMenu,
Wayfinder, is also available.
You can control in several ways what get’s showed in your menu and what not. First, there is a "display in menu" checkbox when creating documents. Then the "menubuilders" usually takes parameter what defines where in the tree to start collecting documents, so you can define some folder in that parameter and it’s childs will be returned. And furthermore, most have parameter to define how many levels to walk through when retrieving childs. So you could have for example level limit of 1 for top menu and then have a side menu what takes the childs of the document that is selected from the topmenu.
Then again, it would be also possible to make a TV that holds some category names for documents and when creating docs, assing the doc to certain categories. Then you could use Ditto snippet to build your menu by categories. etc..
To use background images in the menu as the visible linktext, you would probably achieve that easiest with Wayfinder. You can make it add a unique ID for every menuitem to what you can refer in your CSS.