A stake pool is a reliable server node that focuses on ledger maintenance and holds the combined resources -the '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. Stake pools are at the core of Ouroboros, Cardano's 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 bring their resources (their 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 (SPO) installs and runs software compatible with the platform (the server node), while delegators take a more passive role. They delegate their stake to the pool.
While Ouroboros is cheaper to run than a proof-of-work protocol, running Ouroboros still incurs some costs. Therefore, SPOs are rewarded for running the protocol in the form of incentives that come from the transaction fees and from inflation of the circulating ada supply.