Wow, what a good question. I can't think of a way to do it through the OS - doesn't mean there isn't one though. Come on world, can this be done?
If you're using HP laser printers try using the web browser to access the management pages. There's usually a count on there. Once you've found it maybe you could knock up a script to retrieve the values using SNMP and produce a monthly report
It might not be as hard as you think. A fair number of SNMP swiss-army-knife type programs will let you build a scheduled collection job. HP Openview NNM does for example. Or you could use something like MRTG to do it. The key to all of this, however, is finding/knowing the SNMP OID where the value resides in the printers you have
The Bishop's suggestion (SNMP) is brilliant if you're willing to get your hands dirty or tinker. You could however use a solution from HP called HP Web Jetadmin. I'm not sure if this was what jacko0 was referring this. Check out this link
for the specs and also this one
for a report generation plug-in for the same product.