A presheaf $F$ with values in $C$ is a called a sheaf if, for every object $X$ and every covering sieve $R$ of $X$, the natural maps

$F(X) \rightarrow F(Y)$

for each Y in R induce an isomorphism

$F(X) \xrightarrow{\sim} \varprojlim_{Y \in R} F(Y)$

This definition makes sense without any assumptions on $C$.

The sheafification construction makes use of filtered colimits and essentially arbitrary limits (if you are interested in sheaves on a particular topology then you might be able to restrict the class of limits that need to be considered).  It is defined by iterating the construction

$F^+(X) = \varinjlim_{R} \varprojlim_{Y \in R} F(Y)$

where the $\varinjlim$ is taken over covering sieves of $X$.  If $F$ is set-valued, the associated sheaf of $F$ is $F^{++}$.

I don't know what conditions on $C$ are necessary to make the sheafification of a presheaf in $C$ a sheaf, but I wouldn't expect the construction to behave very well unless $C$ is a fairly special category.

(Categories of algebraic structures on sets defined by finite inverse limits would qualify as "special", essentially because filtered colimits commute with finite inverse limits.)