iPhoto keeps a copy of all your original files so that you can use the "Revert to Original" option at any time. It keeps originals for even the most minuscule changes, such as changing the orientation. If you change orientation often, then you've got a whole bunch of "duplicates" in your iPhoto Library. Also, if you've changed a file in another way and have absolutely no desire to go back to the original, you've got another duplicate there. So it builds up quite a bit over time.
My iPhoto library was somewhere around a bulging 90GB before I followed a few tricks to cut it down in size. I haven't gotten around to getting rid of duplicates but I still managed to get it down to 72GB. I only have 18,873 pictures, so I know that I should be able to cut it down quite a bit more when I get rid of duplicates.
There was a utility that helped get rid of duplicates, it's called iPhoto Diet. Unfortunately, it hasn't been updated lately and only supports iPhoto 6 or 7.