Is the language of Turing machines that calculate a given function $f$ in RE or coRE?
Below, we assume $f$ computable, otherwise $L$ is empty, so RE and coRE.

For the "RE" part

This can be done with reductions, but the easy way is to exploit the Rice-Shapiro theorem.

Now, take a set of partial recursive functions $F$ ($F=\{f\}$, in your case), and define $L$ to be the set of TMs that implement some function in $F$.
If $L$ happens to be in RE, then by Rice-Shapiro we must have


if $g\in F$ has infinite domain, some finite restriction of $g$ must belong to $F$ as well
if $g$ is non-total, every computable extension of $g$ must belong to $F$


Often, one of these cases is false, implying that $L$ was not RE (provided it has the form above).

In your case, $L$ can not be RE since $F$ only contains $f$: if $f$ has an infinite domain, 1) is violated, otherwise 2) is violated.

In both these cases, you can replace Rice-Shapiro by suitable reductions from the complement of the halting problem, but doing that you are essentially repeating the proof of Rice-Shapiro. It is still a nice exercise, though: one can define one reduction for each case.

Even more in general, $F$ can never be finite if $L$ is RE. But $F=\{f\}$ is finite.

For the "coRE" part

If $f$ is the always-undefined function, $L$ is coRE. Indeed, for $M$ to implement a different function from $f$, it is enough that $M$ halts on some input, which is a RE problem.

If $f$'s domain is nonempty, say $f(x)=y$, $L$ is not coRE. To prove that, it suffices to reduce the halting problem to $L$. 
Given $M$, craft $M'$ which on input $w\neq x$ outputs $f(w)$. When $w=x$, instead, run $M$, and if that halts output $y$ (otherwise we diverge).