There is a subtler, connotations based, difference that neither of the answers have touched on so far.
A Devil is strongly associated with religion and sin. In almost all contexts a devil, or the devil, represents evil. Although it may sometimes be light-hearted; "You devil!" could be playful, depending on tone of voice.
A demon does still appear in religious contexts but is also found in other references to the supernatural. Although they can be monsters, demons are sometimes not portrayed so negatively. They can be romanticised, for instance "Sweeney Todd; the demon barber of fleet street." or in Kubla Khan "By woman wailing for her demon-lover!".