The adjoint functor theorem <a href="http://en.wikipedia.org/wiki/Adjoint_functor_theorem#General_existence_theorem"> as stated here</a> and the special adjoint functor theorem (which can also both be found in Mac Lane) are both very handy for showing the existence of adjoint functors. First here is the statement of the special adjoint functor theorem: <b>Theorem</b> Let $G\colon D\to C$ be a functor and suppose that the following conditions are satisfied: (i) $D$ and $C$ have small hom-sets (ii) $D$ has small limits (iii) $D$ is well-powered i.e., every object has a set of subobjects (where by a subobject we mean an equivalence class of monics) (iv) $D$ has a small cogenerating set $S$ (v) $G$ preserves limits Then $G$ has a left adjoint. <b>Example</b> I think this is a pretty standard example. Consider the inclusion <b>CHaus</b>$\to$<b>Top</b> of the category of compact Hausdorff spaces into the category of all topological spaces. Both of these categories have small hom-sets, it follows from Tychonoff's Theorem that <b>CHaus</b> has all small products and it is not so hard to check it has equalizers so it has all small limits. <b>CHaus</b> is well-powered since monics are just injective continuous maps and there are only a small collection of topologies making any subspace compact and Hausdorff. Finally, one can check that $[0,1]$ is a cogenerator for <b>CHaus</b>. So $G$ has a left adjoint $F$ and we have just proved that the Stone-Čech compactification exists. If you have a candidate for an adjoint (say the pair $(F,G)$) and you want to check directly it is often easiest to try and cook up a unit and/or a counit and verify that there is an adjunction that way - either by using them to give an explicit bijection of hom-sets or by checking that the composites $$G \stackrel{\eta G}{\to} GFG \stackrel{G \epsilon}{\to} G$$ and $$F \stackrel{F \eta}{\to} FGF \stackrel{\epsilon F}{\to} F$$ are identities of $G$ and $F$ respectively. I thought I'd also attempt to add some heuristics later - although most of them will probably be of the form "try to massage your problem into a context where you know adjoints exist" I can't help remarking that one instance where it is very easy to produce adjoints is in the setting of compactly generated (and well generated) triangulated categories. In the land of compactly generated triangulated categories one can wave the magic wand of Brown representability and (provided the target has small hom-sets) the only obstruction for a triangulated functor to have a right/left adjoint is preserving coproducts/products (and the adjoint is automatically triangulated).