If you've gone a long time without purging, it might not be possible to purge everything in one shot. You might have to purge in smaller sets. The only real way to do this is by folders and numbers of iterations. You can create a folder and setup a purge job for anything in that folder. You would then have to move data in and out of that folder to run jobs against it.
Another way, if you have larger iteration histories is to start with keep some high number of iteration (like 10) and work that down one by one. The problem here is that the amount of data in the purge increases as you lower that number.
You might also look at your Products and Libraries and see which ones have the most purgable data. I have written some SQL queries for this.