You don't need the second line here:
Wire.requestFrom(srfAddress, 2); // Request 2 bytes from SRF module
while(Wire.available() < 2); // Wait for data to arrive
requestFrom "blocks" until the requested number of bytes arrives, or it times out. So the second line achieves nothing except to potentially put it into a loop. In fact requestFrom returns the number of bytes. So a better plan would be:
if (Wire.requestFrom(srfAddress, 2) != 2)
{
// some sort of error
}
else
{
highByte = Wire.read(); // Get high byte
lowByte = Wire.read();
}
Try the "I2C bus scanner" on this page. That will confirm whether or not the device is responding and if so, what address it has: