This issue also puzzles me whenever I prepare a lecture on the Galileo or Poincare group ;-)). It's just a convention, how you describe spatial translations in terms of its infinitesimal generators, i.e., using [itex]\hat{T}_{\pm}(\xi)=\exp(\pm \mathrm{i} \xi \hat{p})[/itex]. It's arbitrary whether to use the upper or the lower sign convention. The usual one is the + convention.
The action of the translation operator on a generalized position eigenvector is defined by
[tex]\hat{T}_{\pm}(\xi) |x \rangle=|x-\xi \rangle. \qquad (*)[/tex]
For a general state [itex]|\psi \rangle[/itex] this gives for the translation operation on the position-wave function
[tex]\psi'(x)=\langle x|\hat{T}_{\pm}(\xi) \psi \rangle=\langle \hat{T}_{\pm}^{\dagger}(\xi) x|\psi \rangle=\langle x+\xi |\psi \rangle=\psi(x+\xi).[/tex]
For a infinitesimal displacement you have on the one hand
[tex]\psi'(x)=\psi(x+\delta \xi)=\psi(x)+\delta \xi \partial_x \psi(x).[/tex]
On the other that's
[tex]\psi'(x)=(1 \pm \mathrm{i} \delta \xi \hat{p}) \psi(x).[/tex]
Comparing the two latter equations gives
[tex]\hat{p} \psi(x)=\mp \mathrm{i} \partial_x \psi(x).[/tex]
The commutation relations for position and momentum of course also differ by a sign,
[tex][\hat{x},\hat{p}]=\pm \mathrm{i}.[/tex]
As I said, the usual convention is the upper sign.
Of course you can also mix up the whole issue further by using the upper sign convention for the translation operator but a different sign in Eq. (*) on the right-hand side. This again depends on whether you consider the translation as an active or passive operation, i.e., whether you define the translation of the position coordinates with either sign, [itex]x \rightarrow x'=x \pm \xi[/itex].
As I said, that's all convention, and it's good to stick to one once and forever not to get confused.