Flatten Image does exactly that ... it will flatten all layers into one.
Merge visible means that you could 'deselect' certain layers, and just merge the visible ones into one layer. It's useful for keeping layers to a minimum.
I often use the Merge Visible for multiple layers which contain Text - get them all into the right place then deselect everything else, Merge the Text layers into one, then you don't have loads of Text layers hanging around.
Does that make sense? I find it hard to explain sometimes (esp on a Friday morning with a Hangover!!)!
Mort