Are you looking at the correct I2C bus, between rev 1 and rev 2 the GPIO header was changed from using I2C 0 to I2C 1, see eLinux - RPi Low-level peripherals for details of the various pin changes.
should scan both buses separately, if your devices show up after one of the calls then that is the bus they are on.
Failing that if you have access to an oscilloscope you can monitor the pins and run
i2cdetect again. You are looking for the voltage level to pulse a digital sequence between high (3.3v) and low (0v) on both pins.
If you are fairly sure the pins are not working then try to use them as simple GPIO pins (0 & 1 for rev 1, 2 & 3 for rev 2) and manually drive them high, check they are high (3.3v) using a multimeter, then drive them low and check they are low (0v).
If you do not know how to drive the GPIO pins manually then see here for a Python example and here for a BASH example.
If they do not go high and low on command then there is something wrong with the pins, if they do but you still cannot get I2C to work then your problem will need further investigation.