@Emre:
do you know how Crysis is doing this?
I just used the distance between the water surface and the terrain for my demo, but this gives some hard edges. I also thought about using a heightmap of the terrain to avoid that, but this would be less dynamic and would not work if I add some other models...