Definitely PunyPNG (punypng.com). There is a max file size per image (350KB [up from 100KB about a year ago]) but you can batch-upload and then download them all in a single zip file. It also has a public API (in beta).
PunyPNG works on png, jpg, gif, and animated gif. It performs just as well as Google PageSpeed's image compression and Yahoo's Smush.It (the smush.it service sucks since Yahoo! "mainstreamed" the project). View a comparison chart.
PNGOutWin (downloadable, installable, and Photoshop-pluginable; PNG only) works best on PNG's from my experience...I don't know if there is a portable version that can run without install.
Lastly there is PNGQuant which will allow you to take your 32/24 bit PNGs with alpha transparency and quantize and dither them down to 8 bit or less while preserving the alpha channel (as a bonus: IE6 will display the partially transparent pixels with 100% transparency instead of the dreaded grey background)...you will sometimes lose some image quality with this tool, but it can greatly reduce file size.