An example would be:
If you construct a button (MyStartGameButton.prefab) and child it under a UICamera hierarchy, that UICamera will try to pass it an OnClick event. If there is no component attached to it, nothing happens, as there is no receiver. But, if you define the 'void OnClick()' method in a new component, and attach that component to the MyStartGameButton, the UICamera will pass the OnClick event to it.
(As an aside, if you attach 20 different components to the same button, and each of them had its own OnClick method defined, then all of those components receive that OnClick event. That's a lot of clicks for a single button.

)
Alternately, let's say that you want to define a single component in your scene to handle all the buttons therein. You can create a single controller class and use the 'UIEventListener.Get(...)' subscription model to point to each of the buttons and subscribe to each of their OnClick events. Then all of the OnClick events passed from the UICamera are returned to that single component, and you can handle them all in one place (instead of having dozens of components all around your scene).