Arduino Ethernet Shield

Also have you considered putting a AVR on the shield so the code required to interface with it is reduced?
Put all the low level code on the on board processor and expose a simple API over I2C or something.