What's the difference between these names of moving water?

Solution 1:

You missed run, burn and kill, bayou, and seaway. A canal also has moving water, but is man-made.

Generally, the difference is size: you can step over a brook, jump over a creek, wade across a stream, and swim across a river. But the distinction between them (especially creek and stream) is somewhat hazy, and depends on who named them and when they were named. A run (such as Bull Run in Virginia) is a "small stream". Streams and rivers named kill (from the Middle Dutch word kille) occur frequently in New York (and occasionally in nearby states), and were most likely named by the Dutch. Some of these have had "creek" or "river" added to them later (Catskill Creek, Fishkill River).

Solution 2:

Size matters. Here's a fairly good explanation:

The smallest body of water is the brook, a natural stream of water that is found aboveground and is often called a creek as well. A brook is usually a tributary (a small body of water that naturally flows into a large one) of a river, but this is not always the case. Some people also call these smallest bodies of water streams, although streams can flow underground or even in another body of water (like the Gulf Stream).

Brooks, creeks, streams can be tributaries of rivers. A river is a larger body of water that flows aboveground, in a particular direction, and usually has a large volume of water in it. (This varies, of course, according to rainfall and/or snowfall totals. A river will always have more water in it than a stream, however.) Rivers often flow into other bodies of water. For instance, the Mississippi River flows into the Gulf of Mexico.

Here are the differences as laid out by the Maine Geological Survey:

River - a natural freshwater surface stream of considerable volume and a permanent or seasonal flow.
Stream - any body of moving water that moves under gravity to progressively lower levels, in a relatively narrow but clearly defined channel on the surface of the ground.
Brook - a small stream or rivulet, commonly swiftly flowing in rugged terrain, of lesser length and volume than a creek. A term used in England and New England for any tributary to a small river or to a larger stream.

As to your second question, there's also:

canal, channel, branch, crik, rivulet, streamlet, brooklet, runlet, runnel, rundle, rindle, beck, gill, burn, sike, freshet, fresh, millstream, race, tributary, feeder, confluent, effluent, billabong, flow, and course (of course).