Yes! There are several ways to re-use assets.
One way is to use Linked Duplicates. To create a Linked Duplicate, just press AltD and you will get a new Object that uses the same Mesh data as the original it was duplicated from. With Linked Duplicates you can add a Modifier to one of the objects without it affecting the others. This may be the best-suited solution for your projects, based on what you described.
In the following screen shot we can see in the Mesh Context that the object selected is named "Icosphere.001". There is another object named "Icosphere" that this was created from as a Linked Duplicate. Both objects share the Mesh named "Icosphere", and this Mesh has two users, as is indicated by the "2" displayed to the right of it.
Linking from another .blend file
Another way is to create your assets in another .blend and Link them into your main project using File > Link. This would be done from within your main project.
Yet another way, keeping everything within a single .blend, is to use Group Instances. To do this, simply Group the object(s) you wish to re-use (CtrlG), and you can then Add a Group Instance (ShiftA), which is a linked copy of the original object(s). Group Instances are not directly editable, but you can transform/scale/rotate them. To make changes to their meshes you would edit the original Grouped object(s).
I'd like to give a shout-out to the archiviz tutorial DVD I originally learned this from. It used to be sold on the Blender Store, but it doesn't seem to be offered anymore and I can't remember the title. Anyway, it's a useful technique, so I pass it along to you.