Difference between "dumb" and "stupid"
In Britain 'dumb' is seldom used to mean stupid. It was mostly only used to mean mute e.g 'deaf and dumb'. However 'dumb' in the mute sense is probably politically incorrect nowadays, a bit like calling a short person a 'dwarf'. So 'dumb' I would suggest is little used nowadays, but I stand open to correction.
Where Americans will use "dumb" meaning unlearned, or ignorant, the British equivalent would undoubtedly be "dim".
They can be used interchangeably, insofar as they both can mean "silly," or "foolish."
Unlike "stupid," "dumb," can also be used in a slightly different way, in the sense of being "mute," "silent," or more likely "inarticulate."
I'd say that "stupid" is more to the point. If you really want to insult someone (or point out his shortcomings), you'd call him "stupid".
But there's a subtlety: Usually when a friend does something stupid - in other words, without thinking - you'd say "that's really dumb". This doesn't carry the insult, but only lets the person know that he didn't think things through, usually as a gentle correction.
But here again, tone of voice carries most of the meaning. You could say "that's really dumb" in an angry way that makes it hurt more than "that's stupid" said gently.