I think both are not bad for what they do but I personally use Project manager for the task (as for many other 3ds max asset related management tasks too))
http://c2n.me/3BlQuPb it is a little more complicated to set up previews there but, in the end it's way more predictable and controllable - library structure is simple and easily editable as it uses the regular file structure on hdd without any obscurities like uncomprehensive naming of stored files and folders as in Cmpp or VPmP and the materials themselves are stored in regular and reusable (even without PM) 3ds max's .mat files.
Adding the material to libraries is a simple drag and drop action from 3ds max's material editor to an already occupied or empty material library in PM, + all maps used by that material can be automatically copied (if user chooses so and if, not the paths are left as in the original 3ds max's material) and remapped to the location of that mat lib and put into an automatically created maps folder same goes for rendered material previews (if those were not rendered it uses regular 3ds max's material editor previews instead) which when looks like this
http://clip2net.com/s/3BlTAd7 or one can pick material directly from an object in a scene which can be even more useful for some materials as PM can store applied modifiers if needed too, well those like Corona\Vray displacement mod's uvw mapping etc. or even some more specific ones like some curvature or vertex color map generating ones which, when saved, can be easily reapplied in other scenes by simply dragging that material from PM on top of any scene object, same dragging goes for a material editor but in this case modifiers are, of course, lost. Well I think PM is almost perfect for anything it does (probably I'm a fanboy if that's applicable in the case of describing tools), if only it wouldn't be so ugly looking - it sure needs some ui redesign as it looks like a blast from not so distant and badly designed win xp like (oh how I hated that one) past right now )) And, no, it has no tags but if the library structure is set up right who needs those tags + it got a search function for that ))