Although the voiced dental fricative [ð] and the voiced coronal plosive [d] are similar sounds, they did contrast in Old English. However, [ð] did not contrast with the equivalent voiceless fricative [θ], so [ð] in Old English is not considered a phoneme, but an allophone of a dental fricative phoneme that was unspecified for voicing, which we can transcribe as/þ/ (since the letter thorn, "þ", was used in Old English to write either [θ] or [ð]).
An example: the word fæder "father" had the phoneme /d/, but the word broþor "brother" had the phoneme /þ/ (realized as [ð]).
Here are some quotes describing the development of these sounds from Dental fricatives and stops in Germanic: deriving diachronic processes from synchronic variation, by Bridget Smith 2007:
Old English, as the
other West Germanic languages, showed evidence of strengthening of
Verner’s /ð/ to /d/ (for a more detailed discussion of Verner’s Law,
see section 3). This is why there was only one dental fricative
phoneme, /θ/, and a voiced allophone, /ð/. However, there was
variation between /ð/ and /d/ in medial positions, often attributed to
analogy -- paradigmatic, semantic, fourpart, and other; for example,
burden vs. burthen, fader vs. father, murder vs. murther. It
is also possible that early Scandinavian influence, with its medial fricatives, compounded
this situation, which persisted well into Middle English, though it should be noted that
Old Saxon also demonstrates this type of variation in medial positions.
In Section 3:
There are differences in how the individual Germanic languages handled
the dental fricative [Proto-Germanic *ð] after the reconstructed proto-language stage,
with some of them making multiple changes in place, manner, and/or
voicing. The main thrust of changes seems to favor neutralization of
the voicing distinction, or a change of one or both phonemes in manner
of articulation to stop or approximant. In West Germanic, all
instances of /ð/ hardened into stops, leaving only the voiceless
dental fricative. In Old High German, Grimm’s /θ/ eventually became
/d/ and /ð/ became /t/ (essentially reversing Verner’s and Grimm’s
Laws in this respect). By the 8th century, /ð/ had changed to /t/,
presumably having first become /d/, as in Old English, then becoming
/t/ during the High German Consonant Shift. [...]
Old English regained voiced /ð/ from voicing assimilation of /θ/,
(baþian > [baðian]) and some instances of /d/ became /ð/ in Middle
English, either by analogy or medial weakening (burthen, mother), and
a few instances of /ð/ became /d/ (murder).
The paper also discusses development in other Germanic languages; I'd recommend reading the whole thing.
One thing I've read in multiple sources is that variation between /ð/ and /d/ in English was particularly common in words ending with a vowel or the liquid r plus -der/-ðer. (This variation doesn't seem to have applied to words that just have the suffix -er, such as the noun leader or the inflected adjective redder.)
For example, the Oxford English Dictionary's entry for father says:
The spelling in our quots. is uniformly with d until 16th cent.,
except that faþer occurs sporadically in the Cotton and Göttingen MSS.
of the Cursor Mundi (a1300); but the pronunciation /ð/ may have been
widely current in the 15th cent. or even earlier; in 14–15th cent. the
spelling with -der is very common in words like brother, feather,
leather, though this spelling cannot in all cases be supposed to
indicate that the writers pronounced the words with /d/ . The modern
English -ther /ðə(r)/ for Old English -der, -dor in father and mother
is often wrongly said to be due to the analogy of brother, or to
Scandinavian influence; it is really the result of a phonetic law
common to the great majority of English dialects; other examples in
standard English are gather, hither, together, weather. At present
nearly all dialects pronounce father and mother with /ð/ as in
standard English; in various parts of the north of England and the
north Lowlands /d/, alveolar or dental, is sometimes heard.
The interesting thing about brother, feather and leather is that they actually did not have /d/ in Old English (they come from OE broþor, feþer, leþer) so the use of "d" in some historical spellings of these words cannot indicate an unshifted inherited /d/; it either is a way of spelling /ð/ or it is the result of a sound change from OE [ð] (phonemically /þ/) to /d/ (a sound change that was either reversed or did not occur in the ancestor of modern standard English).
Here are relevant word pairs that I have found in Old and Modern English:
d > th:
- OE mōdor > mother
- OE fæder > father
- OE gad(e)rian > gather
- OE tōgædere > together
- OE weder > weather
- OE hider, hwider, þæder/þider > hither, whither, thither
The reverse change also occured:
þ > d:
- OE spīþra > spider
- OE rōþor > rudder
- OE morþer/morþor/morþur/morþre > murder (this word may have been influenced by French forms)
- OE byrþen/berþen > burden (unusually, this one does not end in -er)
And Modern English does have a number of words ending in a vowel plus -der that had /d/ in Old English:
d > d:
- OE hlǣd(d)er > ladder
- OE blǣdre > bladder
- OE nædre/næddre > adder
- OE mædre/mæddre/mædere > madder (the plant)
- OE fōdor > fodder
- OE ūder > udder
There are of course many inherited Germanic words ending in -nder, such as under and tinder (I can find no evidence of variants ending in -nther for words like this). There are also words ending in a vowel plus -der that are not inherited from Old English; mainly Middle English borrowings from French, such as cedar, cider and powder. Interestingly, the Oxford English dictionary attests variants spelled with th (such as sither, pouther) for some of these words. It also lists garthen as a Middle English spelling variant of garden, maþen as a pre-17 variant of maiden, and fardin(g) as a variant of farthing.
The adjective sodden comes from an Old English past participle that had d (soden) but other forms of the verb had þ (the infinitive was sēoþan, and the corresponding modern verb is seethe). Possibly because of this, forms like soþen, sothen are attested for the adjective in Middle English.
Another relevant word is heather (the etymology is unclear, but variants with d are attested).
Transcription note: for my transcriptions of Old English words here (the ones not in quotes) I normalized ð to þ (to standardize notation and avoid confusion with the phone [ð] and phoneme /ð/)