How do I check if a functor has a (left/right) adjoint?
The adjoint functor theorem as stated here 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:
Theorem 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.
Example I think this is a pretty standard example. Consider the inclusion CHaus$\to$Top 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 CHaus has all small products and it is not so hard to check it has equalizers so it has all small limits and the the inclusion preserves these. CHaus 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 CHaus. 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 (although I am at the risk of this getting excessively long) that I would add another approach. One can often use existing formalism to produce adjoints (although this is secretly using one of the adjoint functor theorems in most cases so in some sense is only psychologically different). For instance as in Reid Barton's nice answer if one can interpret the situation in terms of categories of presheaves or sheaves it is immediate that certain pairs of adjoints exist. Andrew's great answer gives another large class of examples where the content of the special adjoint functor theorem is working behind the scenes to make verifying the existence of adjoints very easy. Another class of examples is given by torsion theories where one can produce adjoints to the inclusions of certain subcategories of abelian (more generally pre-triangulated) categories by checking that certain orthogonality/decomposition properties hold.
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).
Lots of people-who-are-fond-of-adjoint-functor-theorems have responded to this post saying "adjoint functor theorems". Let me give a more mundane and rather different answer which fits much better into my world view.
In my experience (which may differ from others), the true answer is that category theorists have these adjoint functor theorems which work well in some cases, but whose problem, as I see it, is simply that they are quite general. I am certainly not a category theorist but I am a "working mathematician" and my experience with these general theorems has been quite negative. For example take the notion of free groups. I was talking to another staff member here once and they said they'd just set an UG project on constructing free groups and I said "can't you just say 'done by adjoint functor theorem'?" and we both laughed because we knew it was true. And then I actually went and looked up SAFT and checked that it could construct free groups---and it can't, because the category of groups (hardly an exotic or esoteric category!) does not have a small cogenerating set. As I write, the top answer here has 15 votes and a lovely statement of SAFT but if you can't get free groups with it then you surely have to question its usefulness. In fact, although this sort of goes against the grain of what most people are saying here, in my experience you would be crazy trying to invoke adjoint functor theorems to construct free groups: you're much better off making them yourself, not least because making them yourself will teach you much more about how the objects work.
My experience is that things like SAFT are almost always justified with the statement "Stone-Cech compactification!". I have heard this justification, and only this, so often now that the excuse is wearing thin.
So here is my answer: Yes, there are some general theorems. But if you're not a category theorist then in my experience they have limited applicability. You're better off thinking about things on your own, saying "hmm, here's an object with structure X, how might one naturally build an object with structure Y from it?". If you can go both ways you might well have constructed a pair of adjoint functors, and you could then try to check this by doing mathematics rather than waving general category-theory theorems which have specifically beein designed with a one-size-fits-all purpose in mind, and which don't apply to such exotic categories as the category of groups.
Other people have mentioned the Adjoint Functor Theorems. Here's a different perspective.
There's a famous Cambridge exam question set by Peter Johnstone:
Write an essay on (a) the usefulness, or (b) the uselessness, of the Adjoint Functor Theorems.
I agree with the undertone of the question: the Adjoint Functor Theorems (AFTs) aren't as useful as you might think when you first meet them. They're not useless: but my own experience is that the range of situations in which I've had no easy way of constructing the adjoint, yet have been able to verify the hypotheses of an AFT, has been very limited.
Perhaps more useful than knowing the AFTs is knowing some large classes of situation where an adjoint is guaranteed to exist. Here are two such classes.
${}$1. Forgetful functors between categories of algebras. Any time you have a category $\mathcal{A}$ of algebras, such as Group, Ring, Vect, ..., the forgetful functor $\mathcal{A} \to \mathbf{Set}$ has a left adjoint. What's not quite so well-known is that you don't have to forget all the structure; that is, the codomain doesn't have to be Set.
For example, the functor $\mathbf{AbGp} \to \mathbf{Group}$ forgetting that a group is abelian automatically has a left adjoint. The functor $\mathbf{Ring} \to \mathbf{Monoid}$ forgetting the additive structure of a ring automatically has a left adjoint. The forgetful functor $\mathbf{Assoc} \to \mathbf{Lie}$, sending an associative algebra to its underlying Lie algebra (with bracket $[a, b] = a\cdot b - b \cdot a$) automatically has a left adjoint. (That might not look so much like a forgetful functor, but that's only because the bracket on an associative algebra isn't given as a primitive operation in the usual definition of associative algebra: it has to be derived from the other operations.)
The same can be said if you talk about topological groups, rings, etc, basically because Top has all small limits and colimits.
All that is a consequence of the General AFT (= 'the' AFT in some people's usage). To my mind it's the principal reason why it's worth learning or teaching the General AFT.
${}$2. Kan extensions. Let $F: \mathbf{A} \to \mathbf{B}$ be any functor between small categories. Then there's an induced functor $$ F^{*}: {[\mathbf{B}, \mathbf{Set}]} \to {[\mathbf{A}, \mathbf{Set}]} $$ defined by composition with $F$. (Here ${[\mathbf{B}, \mathbf{Set}]}$ means the category of functors from $\mathbf{B}$ to $\mathbf{Set}$, sometimes denoted ${\mathbf{Set}}^{\mathbf{B}}$.)
The fact is that $F^{*}$ always has both a left and a right adjoint. These are called left and right Kan extension along $F$. The same is true if you replace $\mathbf{Set}$ by any category with small limits and colimits.
This is really useful, though that might not be obvious. For example, suppose we're interested in representations of groups. A group can be regarded as a one-object category, and the category of representations of a group $G$ is just the functor category $[G, \mathbf{Vect}]$. Now take a group homomorphism $f: G \to H$. The induced functor $$ f^{*}: [H, \mathbf{Vect}] \to [G, \mathbf{Vect}] $$ sends a representation of $H$ to a representation of $G$ in the obvious way. And it's guaranteed to have both left and right adjoints. These adjoints turn a representation of $G$ into a representation of $H$, in a canonical way. I believe representation theorists call these the 'induced' and 'coinduced' representations, at least in the case that $G$ is a subgroup of $H$ and $f$ is the inclusion.
Exercise: let $G$ be a group. There are unique homomorphisms $G \to 1$ and $1 \to G$, where $1$ is the trivial group. Each of these two homomorphisms induces a functor "$f^{*}$" between the category $[G, \mathbf{Set}]$ of $G$-sets and the category $[1, \mathbf{Set}] = \mathbf{Set}$ of sets. These two functors each have adjoints on both sides. So we end up with six functors and four adjunctions. What are they?
The existence of Kan extensions is best derived from the theory of ends. In fact, ends allow you to describe them explicitly.