Both of them over hundreds years old. The practical importance of Gauss' theorem is that it enables an integral taken over a volume to be replaced by one taken over the surface bounding that volume, or vice versa. Why would we want to do that? Computational efficiency and/or numerical accuracy! In a similar way, Stokes' theorem enables an integral taken around a closed curve to be replaced by one taken over any surface bounded by that curve.
the Fundamental Theorem of Calculus
Before giving a comparison/contrast type answer, let's first examine what the two theorems say intuitively is also a special case of the Generalized Stokes Theorem, and relates the integral over an interval to the values of the function on the boundary -- the boundary being the two points and .Stokes' Theorem says that if is a vector field on a 2-dimensional surface (which lies in 3-dimensional space), then where is the boundary curve of the surface.
In one sense, if you associate curl with Stokes and divergence with the Divergence theorem, you have what you need to recognize when to use each. But instead of a mnemonic, I like to hold onto an example, to see the different applications.The left-hand side of the equation can be interpreted as the total amount of (infinitesimal) rotation that impacts upon the surface . The right-hand side of the equation can be interpreted as the total amount of "spinning" that affects along the boundary curve . Stokes' Theorem then tells us that these two seemingly different measures of "spin" are in fact the same!
Gauss's theorem is frequently employed in electrodynamics. With it, you get the fact that the electric flux out of a volume of space is related to the distribution of the field within that space (as measured by divergence), which is in turn related to the amount of charge in that space. See here.
Stokes is also used is electrodynamics, but it is instead more directly used on Ampere's Law. It relates magnetic fields to the current that creates them, and this is sort of nice in the sense that it gives a reason why we should traverse a shape in a loop.
It is remarkable also because solely from knowing how affects the boundary curve , we can deduce how affects the entire surface!
The Divergence Theorem says that if is a vector field on a 3-dimensional solid region (which lies in 3-dimensional space), then where is the boundary surface of the solid region , and is an outward-pointing normal vector field on .If we think of as being some sort of fluid, then the left-hand side measures how much of the fluid is outward-flowing (like a source) or inward-flowing (like a sink). That is, the left-hand side measures the total amount of (infinitesimal) divergence (outwardness/inwardness) of throughout the entire solid . On the other hand, the right-hand side tells us how much of is "passing through" the boundary surface . In other words, it is the flux of across . So, the Divergence Theorem tells us that these two different measures of the "outwardness" of (the sources/sinks inside the solid vs the flux through the boundary) are in fact the same! To quote Wikipedia: "The sum of all sources minus the sum of all sinks gives the net flow out of a region." And again, we have a situation where the behavior of on the boundary gives us insight into how acts on the entire region! Similarities: Both Stokes' Theorem and the Divergence Theorem relate behavior of a vector field on a region to its behavior on the boundary of the region. As Zhen Lin pointed out in the comments, this similarity is due to the fact that both Stokes' Theorem and the Divergence Theorem are but special cases of a single, very powerful equation (known as the Generalized Stokes Theorem).
(The Generalized Stokes Theorem is somewhat advanced, and usually goes by the name Stokes' Theorem, whereas the Stokes' Theorem we've been talking about is often called the Kelvin-Stokes Theorem. This is why the Wikipedia page on "Stokes' Theorem" may seem rather advanced -- it is primarily about the Generalized theorem.)