Here are the two explanations I heard the most:
1) It's a shortened term for puteo, which is Latin for "to stink, be redolent, or smell bad." I actually called a professor of Latin at the University of Florida to verify this one.
2) It's actually spelled "pew," but is often pronounced as "pee-yew". It's root is the Indo-European word "pu," meaning to rot or decay. A lot of other languages use this root word and have the same general meaning.
The top is the website I got this info from.
at 11:00 PM on Jan. 12, 2009