I think this question is closely related to reflective subcategories and the adjoint functor theorems. Adjoint functors do not guarantee you to have real “embeddings”, however, usually this part is easy to prove.
Let me restate some results given by Joseph Van Name:
The category of compact Hausdorff spaces is a reflective subcategory of $\mathbf{Top}$. It follows from the special adjoint functor theorem by observing that $[0,1]$ is a cogenerator of compact Hausdorff spaces. The proof of the SAFT gives you an embedding (only in the completely regular case (where $[0,1]$ is still a cogenerator) it is strictly an embedding) into a product of unit intervals.
The category of Banach spaces with linear contractions as morphisms is a reflective subcategory (by only considering the unit balls) of the category of bounded metric spaces. The real numbers are a cogenerator in the category of Banach spaces (by the Hahn-Banach theorem), the SAFT gives you an embedding into a product of copies of $\mathbb{R}$ (which is an $\ell^\infty$-space in the category of Banach spaces).
$\left\{0,1\right\}$ is a cogenerator of totally disconnected spaces. By the SAFT you get that the category of Stone spaces (compact, totally disconnected, Hausdorff) is a reflective subcategory of $\mathbf{Top}$. Well, for non-totally-disconnected spaces your adjoint does not give you an embedding, but the corresponding Stone space still carries the information about the Boolean algebra of clopen sets, thus it remains useful.
The category of compact topological groups is a reflective subcategory of the category of topological groups: Topological groups can be “embedded” (it is not really an embedding) into its Bohr compactification. Since there is no small cogenerating set, you cannot apply the special adjoint functor theorem, thus you do not get the Bohr compactification as a product of very simple groups, but you still get a nice, compact group carrying all the information about finite-dimensional unitary representations of your original group.
To provide a general theorem: If you have a complete, locally small category with a cogenerator $I$, then for every object $X$ the map given by $\prod_{f\in\mathrm{Hom}(X,I)} f$ is a monomorphism. However, this is not enough in the topological case, since we want to have embeddings=extremal monomorphisms, not just injections=monomorphisms. The adjoint functor theorems are probably the most fruitful generalisation of such a criterion.