Since it's obvious that people don't read the FAQ, I've decided to make a separate sticky since this question gets asked every.single.day.
Adjusting Depth on one widget doesn't seem to move it forward in front of another! Why?
"Depth" property is used to determine the drawing order of the widgets within the
same panel that use the
same atlas. If you are using different atlases or labels using a dynamic font, bring the widgets forward on the transform's Z, moving them closer to the camera (-Z). If you are using different panels, adjust the transform of the panel you want to bring in front to a lower negative Z value (-Z). I highly recommend sticking to one atlas if you can manage it, it will make your life significantly easier.
Technical Explanation:
Normally Unity sorts everything by transform's Z coordinate. Objects closer to the camera (lower Z value) will cover objects that are farther away (higher Z value). This works fine when the UI is perfectly flat and is using an orthographic camera (read: it's a 2D UI). For 3D UIs, however, turning the window even slightly completely changes the distance to the widgets, and makes this approach completely unsuitable. This is why "Depth" was invented: it's a fixed value that stays constant, regardless of the transform. Unfortunately there is no way to make different draw calls respect this value (different panel / atlas = different draw call), so with multiple atlases or panels, Z still needs to be used.
More info:
http://www.tasharen.com/forum/index.php?topic=767.0