To keep it simple there are 3 primary differences between the three cards:
4200 = 250mhz core & 444-512mhz RAM (as a rough guide 4200_128MB use 444mhz, 4200_64MB use 500mhz, 4200-8X_128MB use 500mhz)
4400 = 275mhz core & 550mhz RAM
4600 = 300mhz core & 650mhz RAM
The 4400 & 4600 use a bigger 8 layer PCB and BGA packaged RAM which enhances the use of higher clocks. There are a number of hybrid 4200 cards which use the 8 layer design, BGA RAM and faster clocks and these often hit or exceed 4600 speeds ... yet even the cheapest 4200 tend to hit or exceed 4400 speeds which is no bad thing! You have to rem the 4400 o/c to 4600 speeds and the 4600 o/c a little bit faster too (the cards which run at faster default speeds will have faster RAM, ie lower ns so can run faster once o/c'ed), but 4200 is easily best bang and if you want more look to the Radeon9500PRO - 9700.
To complicate things further there is also the 4200-8X_64MB which is no better at all than a std 4200_64MB, and also the GF4TI4800SE and TI4800. The last 2 are simply a 4400-8X and a 4600-8X with identical clock speeds, therefore no better than the usual 4400 or 4600 cards out there!