Encapsulation is the normal method of using a lower layer mechanism for moving your data. E.g. HTTP is encapsulated by TCP, TCP is encapsulated by IPv4, IPv4 is encapsulated by an Ethernet frame.
Encapsulating backwards or at the same layer - IP in GRE, IP in IPsec, IP in UDP, Ethernet in L2TP, ... is called tunneling. It somewhat ties a knot in your layering model.
The most common use for tunneling is to allow you to pass packets/frames across a network that doesn't support the protocol or addressing scheme. You can tunnel private IP address packets across a public IP network, IPv4 over an IPv6 network or vice versa, Ethernet frames across a layer-3 connection, and so on.