Scaling is used for very different concepts. Here's a quick summary and how it applies to SquareScale.
It's basically adding more nodes in the cluster. You scale from 3 nodes to 5 nodes in the same cluster. It's a very interesting option for quick scaling in capacity, when your application is very distributed.
It's basically having more power (CPU, memory) on your nodes, and not more nodes. Instead of a "Small" 3-nodes cluster composed of 12GB of RAM and 3 CPUs, you scale by using a "Large" 3-nodes cluster composed of 48GB of RAM and 12 CPUs. It's an interesting option when more capacity for a single service is required, or the service isn't really designed to be distributed but still need more power.
It's basically deploying more services to optimize resources usage in the cluster, on top of vertical or horizontal scaling. It's a crucial option to launch tens of workers of application servers and use every single memory byte or CPU cycle available in your cluster.