Hrm, tricky, I read this last night and decided it was best to sleep on it.
What we have to do is think about how water works in stages. It falls as rain, it flows, it eventually reaches the sea, it falls as rain again, basically anyway.
This would seem to indicate to me atleast that we would need to iterate the water process as many times as necessary until all points have had their rainfall reach the sea.
I am assuming we will be using a constant rate of rainfall for each point? It is probably possible to factor in rainfall changes in what I am thinking but I will leave that for later, erosion, etc. can also be factored in for each time you iterate it.
Now we have to think about what a lake is, basically it is a natural dip in the land that has to fill up with water before there becomes an exit point for that water to flow down.
Okay, so on first iteration we allow for the rainfall on each tile, next for each tile it queries the overall height for the tiles around it and that tile basically tries to average out the height of water in that group of 9 tiles. Before actually putting that change into affect though we go through the entire list of tiles, judging where each tiles water will flow into before any changes are actually made. After all tiles are processed we effect what is essentially an instaneous change in water level for all tiles according to the simulation we just ran.
It is very important that the simulation be done at the same time for all tiles like this as in nature it is not that one square metre will be processed before the next.
Now, we will probably end up with bumpy water still, again we add rainfall to each point then repeat the process. We repeat this process until each tiles water has reached the sea and the process has started over. We must either keep a track of this somehow or simply let the world builder iterate the water step thousands of times, it doesn't particularly matter as this will be an initial step only done at map creation.
This should, if my head is working it out correctly result in what we are looking for.
EDIT: What's really gonna worry you is underground water flow
" There's nothing like a bit of destiny to get the ball rolling " - Terry Pratchett - The Wyrd Sisters