PIX is a fairly low-level data collector/analyzer for D3D. PIX can examine the state of device objects -- including vertex and index buffers -- from within an experiment. The PIX tutorials page has a document on examining mesh data. The tutorials tend to build on each other so it's probably a good idea to at least skim them from the first one.
It's not a bad idea to write code to compute this information for you though, and allow you to enable/disable it at will. This isn't really "polluting" you code in any way -- you can always configure this code to be compiled-out of release builds, and by having it in your program you can set it up so you can turn it on and off at run-time as well -- this way you may be able to enable it when you encounter a difficult-to-reproduce bug that warrants looking at this diagnostics data. If you rely only on external tools like PIX, you'd have to be able to ensure you can reproduce whatever bug or issue you're looking at before the tool will be useful.
Since you're using XNA, and not D3D directly, you may also find it a bit harder to correlate the D3D commands XNA sends with the XNA operations you're doing, since XNA is a higher-level API.
To compute your primitive count in code, you'll want to iterate all the ModelMesh objects inside your Model. Each ModelMesh has a collection of ModelMeshParts, which each have a PrimitiveCount. The sum of all PrimitiveCounts is the primitive count of the model.