Smart coats defiantly do not have to be black. You might think it is a good idea to go for black most probably because it 'goes with everything' and 'won't show up the dirt'. BUT when you wear a coat it covers most of your outfit anyway so there is nothing it needs to match, also loads of colours go with everything and there is nothing wrong with not matching.
The coat is the thing that you will wear most of during the winter, it will be the first item of your outfit that people will see so make it good!
Here are a few (defiantly not black) smart coats that have caught my eye: