A sketch of the proof of this is provided here, though many of the details are incomplete, and I'm having a certain amount of difficulty filling in the gaps. Note that we require $M$ to be connected (obviously). For clarity, I repeat the question in full below.
Proposition (which I wish to prove): Let $(M,g)$ be an $n$-dimensional topologically-connected Riemannian manifold, let $f:M\to M$ be an isometry (i.e. $f^*g = g$), and suppose there exists some point $p\in M$ such that $f(p) = p$, and $(\mathrm{d}f)_p = \mathrm{id}_{\mathrm{T}_p M}$. I claim that $f = \mathrm{id}_M$.
The proof goes as follows: we define $$X = \{ q\in M\ \vert\ f(q) = q,\ (\mathrm{d}f)_q = \mathrm{id}_{\mathrm{T}_q M}\}$$ so that $X$ is easily seen to be closed, and is nonempty by assumption, so that we must prove that it is open. To do so, let $q\in X$ be arbitrary, and let $$\mathrm{exp}_q:\mathrm{B}_{\mathrm{T}_q M}(0,\varepsilon)\to\mathrm{B}_M(q,\varepsilon)\subseteq M$$ be a diffeomorphism defining a normal neighborhood $\mathrm{B}_M(q,\varepsilon)$, then we will prove that $\mathrm{B}_M(q,\varepsilon)\subseteq X$ for $\varepsilon$ sufficiently small. Note that since isometries preserve geodesics, then $$f(\mathrm{exp}_q(tv)) = \mathrm{exp}_{f(q)}(t\,f_*v)$$ and therefore for any $r = \mathrm{exp}_q(v)\in\mathrm{B}_M(q,\varepsilon)$ we have that $$f(r) = f(\mathrm{exp}_q(v)) = \mathrm{exp}_{f(q)}(f_* v) = \mathrm{exp}_q v = r$$ so it suffices to prove now that there exists some $\varepsilon$ such that for all $r\in\mathrm{B}_M(q,\varepsilon)$, $(\mathrm{d}f)_r = \mathrm{id}_{\mathrm{T}_r M}$, however, I don't see how this is obvious, and Jason DeVito's explanation (drawing a triangle between $r$, $q$, and $\mathrm{exp}_q(v)$ for some $v$ such that $(\mathrm{d}f)_r v\ne v$) doesn't seem at all clear to me. So how is this last part proved?