What would be the best way to estimate velocity from a video? I am not from an EE background, so I am looking for answers to some open-ended questions.

I want to calculate how fast water is flowing during a flood. With or maybe even without debris in it. I have footage video from which I can extract sec by sec images of changing landscape.

It can be considered analogous to a car velocity estimation problem, except the "object" in the case of flood becomes much more complicated.

So far I know about Optical Flow: http://www.mathworks.com/discovery/optical-flow.html 

What are the latest advances in the field that might help me to accomplish my goal?

Any tips at all?
You can probably address that by tracking debris across frames, assuming that they move at the speed of water and aren't too far apart in successive frames.

Maybe start with the old stuff: Shi, J.; Tomasi, C., "Good features to track," in Computer Vision and Pattern Recognition, 1994. Proceedings CVPR '94., 1994 IEEE Computer Society Conference on , vol., no., pp.593-600, 21-23 Jun 1994.