Visio is incredibly powerful, complicated, and (IMO) well designed. It is not so much a vector graphics editor as it is a specification environment for diagram technique specific diagram editors.
It shines when you need that capability.
Dia is nothing like it. It is just a vector graphics editor with a superficial resemblance to Visio. You can indeed create your own shape templates, but you have to encode them by hand in XML. It doesn't offer the 50+ shape properties any Visio shape has to customize its appearance and behavior, let alone the sophisticated inheritance/delegation mechanisms for such properties.
In short, you must define your requirements before we can suggest a suitable replacement. If you need real power in the area of templating, Visio will be hard to beat.