SpyFu (paid version) can do this rather nicely. Not every keyword, but it can give you the Google rankings of a site against an assortment of keywords going back for at least a year. You can enter custom keywords and it will give you the data if it has it. It seems to not work on obscure, low volume keywords, which is to be expected. If it comes back empty, it means that either it doesn't have the data for that keyword, or the ranking was 51+. Don't use it for branded keywords, for example, if your company is ABC Enterprises and you check that keyword, it will likely come back empty. Don't assume ABC Enterprises did not rank for it's own name, but rather, that the search frequency is too low for SpyFu to include it in its automatic data collection process.
Google Webmaster Tools gives historical keyword data but it only goes back 90 days.