What situations do I have to use one in detriment to the other? I believe that both serves for the same situations at the most of the case, isn't?
ssh works at the application layer whereas a VPN works at the transport or network layer.
As a VPN works at the lower layers it can configure routing etc so that your remote computer works as if it were connected to your LAN.
ssh tunnel can't do this at the application layer therefore the remote user has to configure the tunnel manually to listen on a certain TCP port on his/her machine and forward it to a certain TCP port on the remote server.
ssh tunnel connects to one remote computer whereas a VPN can connect to a remote network.
A remote user Alice configures a
ssh tunnel to connect to a web server at the office. She will configure her laptop's
ssh client to listen on a specific port (for example 1080) and forward all traffic received on that port to port 80 of the remote server (the replies from the server will also travel through this tunnel). If she now wants to check emails, she will have to either connect unencrypted over the Internet or create another
ssh tunnel to her office mail server.
Remote user Bob on the other hand configures his laptop to use a VPN back to the office. He can now access all the office servers as if he was located on the office LAN. Of course, there are many VPNs available and they can be configured in different ways, but if configured correctly, he can now browse the company intranet and check emails as if he was located in the office, without starting a new VPN for each application.