Arduino Ethernet board (not shield) and ping

"Request timed out" is the response you should get if the shield did not initialize correctly.

"No route to host" is the message when there is no interface (add: in the router) with that subnet routed through it. That is router talk for "I don't know where that subnet is".

How are you setting the Arduino? Are you assigning a static ip or using dhcp to get an ip? If you are using dhcp, you should use code something like this:

void setup()
{
   Serial.begin(9600);

   // disable the SD SPI interface.
   // this will interfere with the dhcp call if not disabled
   pinMode(4,OUTPUT);
   digitalWrite(4,HIGH);

   pinMode(5,OUTPUT);
   digitalWrite(5,LOW);

   pinMode(6,OUTPUT);
   digitalWrite(6,LOW);

//   Serial.println("Starting dhcp request");

   if(Ethernet.begin(mac) == 0)
   {
      digitalWrite(5,HIGH);
//      Serial.println("No dhcp");
   }
   else
   {
      digitalWrite(6,HIGH);
//      Serial.println("Dhcp ok");
   }

   // rest of the setup stuff
}

What is the last message displayed on the serial monitor?

edit: If you are using an IDE older than v1.0.1 (like v1.0 or v0022), you might need to apply the "605 bug" fix also.
http://code.google.com/p/arduino/issues/detail?id=605

My bad on the serial output. The Arduino Ethernet (not the shield) has no usb port for the serial monitor, does it? I would change those serial messages to two digital pins for a test. Use digital pins 5 and 6 as OUTPUTs and change the pins to indicate the status. A voltmeter should tell you what is happening by the voltage on the pins. I changed the code to use those pins and commented out the serial outputs.