Another option, maximal in terms of flexibility albeit also possibly effort, is to write your own. Of course, this presupposes some extra knowledge. However, I think coding your own gives a level of control that may be very difficult to attain with a library. Hence, it depends on the application.
(ModelDB has some examples of these.)
Of course, I don't recommend this for highly complicated cases (don't try to write your own code to solve SPDEs in volumetric meshes or something).
Using matlab or python (numpy & scipy) makes writing at least some of these models fairly straightforward, and both (especially the latter) have extraordinary scientific visualization capabilities. I have run neurosimulations like this on both my personal laptop and via hundreds of cores in clusters, so it is certainly viable in both cases.
Every model is approximation, and sometimes it is worth it to have better understanding and control of a simpler model than to have an enormously complicated one with huge numbers of different channels that may be hard to realistically choose (what is their spatial distribution and concentration? what are their parameters for the species of interest?). It depends on the phenomenon you want to simulate.
In any case, to speak of libraries, both NEST and NEURON seem like great choices. Personally, I've heard only of NEURON in any detail before.