I think basically:
386 = 80386 Intel processor (ie. the '386 PCs in the mid-late 80s, around 25MHz)
586 = 1st generation Pentium chips (early-mid 90's, around 100MHz)
686 = Pentium Pro and better (Mid 90's, starting around 150Mhz)
Each new generation has added extra op-codes, and remain backward compatible (ie. 386 code will work on 686 processors), but is not nessesarily forward compatible (ie. 686 code will not work on a 386 PC). Unless you are running on *very* old hardware use i686 compiled programs.