The Zip Code Catcher is a great Google Maps based application for finding and downloading all the zip codes for a specific area.
The map includes two drawing tools. A circle tool allows the user to quickly define a radius around the desired location. However, if you need to define an area more precisely, a polygon tool allows you to plot out an area more accurately.
Once you have defined the desired area on the map you just need to click the download button and you can download a CSV of all the zip codes in your selected area. The downloaded spreadsheet includes all the zip codes and the city, state, latitude and longitude, the population and even the distance from the center of your selected area for each zip code.