SSH tunneling is so useful that I find myself revisiting it again. This post helped me to get started. I would add the -f option to run the command in the background. 5126 is the port I use on my own machine once the tunnel is established.
ssh -f -N -L 5126:TARGET_SERVER:22 USER@GATEWAY_SERVER
Once the tunnel is established, I could establish a ssh connection using the tunnel. In this case I also enabled X forwarding.
ssh -X -p5126 USER@localhost