Visually, the difference between bay and brown is that brown horses have lighter orangey-red 'soft' points (muzzle, behind the elbow, flank) They also tend to vary a lot more seasonally than bay horses, with the soft points being most obvious in the winter coat. In the summer coat, many brown horses lighten and can look just like bay horses, which is one example of why it's best to have winter pictures (or better yet winter and summer) pictures of a horse when trying to determine it's true color. Most horses that people call dark bay or seal bay are actually brown.
Genetically, both 'bay' and 'brown' are variations of agouti- the "bay gene," which restricts the expression of black on an otherwise black-based horse. Chestnut horses can carry agouti, but they don't express it because they have no black to be restricted.
When you see results for a horse that's been color tested, they usually look something like Ee AA: the 'E' represents the Extension gene (e for red, E for black) and the 'A' is the agouti gene. A horse with two 'a' genes does not carry agouti; 'A' is classic bay, and 'At' is brown (there's also a 3rd variation called wild bay which is marked 'A+' but there is no test for this one yet) There's currently only one lab that can test for 'At' (PetDNA
), so if you test with another facility like UC Davis, they can differentiate between 'a' and 'not-a', but not between 'A' and 'At'. 'At' is dominant over 'A', so if a horse is genetically At/At, At/A or At/a, he will be visually a brown horse.