If the response is heading the wrong way, or already said what was needed, there's no reason to wait for the rest to finish generating. The stop button takes over the send button's spot (as a square icon), so the user hits the same place without hunting for a new control.
Pressing it halts the stream immediately, and whatever text has appeared so far stays — it isn't discarded wholesale. Leaving a short "stopped" marker at the end of the response keeps the context visible later that this wasn't a completed answer but one the user cut off themselves.
The server side has to actually stop generating, too — if the button just looks stopped while the model keeps producing tokens in the background, that's wasted cost and compute regardless of what the UI shows.
When to use
Keep it as the default control on any interface with streaming responses. Not needed if answers complete instantly with effectively no streaming window.