Dakuten and handakuten are marks added on top of katakana (and hiragana) that alter pronunciation. The dakuten mark is ( ゛). There are 20 dakuten variations. For example: カ (ka) → ガ (ga). The handakuten mark is ( ゜). There are 5 variations. For example: ハ (ha) → パ (pa). See this useful diagram for the general pattern:
K → G
S → Z
T → D
H → B
H → P
カ (ka) → ガ (ga)
サ (sa) → ザ (za)
タ (ta) → ダ (da)
ハ (ha) → バ (ba)
ハ (ha) → パ (pa)
キ (ki) → ギ (gi)
シ (shi) → ジ (ji)
チ (chi) → ヂ (di)¹
ヒ (hi) → ビ (bi)
ヒ (hi) → ピ (pi)
ク (ku) → グ (gu)
ス (su) → ズ (zu)
ツ (tsu) → ヅ (du)²
フ (fu) → ブ (bu)
フ (fu) → プ (pu)
ケ (ke) → ゲ (ge)
セ (se) → ゼ (ze)
テ (te) → デ (de)
ヘ (he) → ベ (be)
ヘ (he) → ペ (pe)
コ (ko) → ゴ (go)
ソ (so) → ゾ (zo)
ト (to) → ド (do)
ホ (ho) → ボ (bo)
ホ (ho) → ポ (po)
(1) ヂ is written in romaji as di but is pronounced ji.
(2) ヅ is written in romaji as du but is pronounced zu.
Also each dakuten/handakuten katakana has a matching dakuten/hankuten hiragana that produces the same sound. See diagram: