Using a cage is a great way to get a high-quality normal map, regardless of the surface that you are baking.
Most normal mapping software can make your cage automatically. However, you can make one from copying your low polygon model and then increasing its scale slightly.
The purpose of using the cage is for the program to change the direction that is used to calculate the normal when baking. This produces far better results on split-normal and hard edges, as you can see in the following image:
The cage is basically a larger, or pushed out, version of a low polygon count model. Encompass the high polygon count model for the baking to work well.
A mesh cage is used to limit the ray cast distance that is used during normal map baking. A cage can also solve problems with split-normal seams on the normal map, as demonstrated in the following image:
If the baking software supports it, bake by matching the mesh names to mitigate the problem of creating a wrong normal map projection. When objects are too close to each other, they can unexpectedly project the normal map onto the wrong face. Matching the mesh names ensures that baking is only done on the right surface, with a matching name.
A separate bake for ambient occlusion can sometimes be required with this solution. This means that you should split UVs on hard edges, because a continuous UV on hard edges causes visible seams. The general rule is to keep the angle less than 90 degrees, or set it as a different smoothing group. Coincide UV seams with different smoothing groups on the triangles.
The following image shows an example of how a break UV looks on hard edges: