The HD4670 is a good bit better than the 512MB version of the 9600 GSO. Nvidia has a habit of giving new names to old cards but in this case they changed the card while keeping the name the same. The new card is significantly inferior(half the stream processors, a slight bump in clock speed) and it's one of the more misleading moves the company has pulled off in a while.
The 384MB(or 768MB) version of the 9600 GSO is on par with with the 4670 at stock and usually overclocks very well to the point where I'd say it's the better choice from a pure performance perspective. However the HD4670 is significantly smaller, cooler and more power efficient so really it's a judgment call.