A stake pool is a reliable server node that focuses on ledger maintenance and holds the combined resources, or stake of various stakeholders in a single entity. Stake pools are responsible for processing transactions that will be placed in the ledger, as well as producing new blocks, and are at the core of Ouroboros, the Cardano proof-of-stake protocol.
To be secure, Ouroboros requires a good number of stakeholders to be online and maintain sufficiently good network connectivity at any given time. This is why Ouroboros relies on stake pools, entities that are committed to run the protocol 24/7, on behalf of the contributing stakeholders that hold ada. The idea is that these resource holders can pool their resources, or stake, together and form a pool, where typically one holder is the operator of the pool and the rest are delegators. Typically, the stake pool operator installs and runs the software that is compatible with the platform (the server node), while others are more passive and delegate their resources, or stake, to the pool.
While Ouroboros is cheaper to run than a proof of work protocol, running Ouroboros still incurs some costs. Therefore, stake pool operators are rewarded for running the protocol in the form of incentives that come from the transaction fees and from inflation of the circulating supply of ada.