I understand that it takes a set number of confirmations before a block is considered confirmed. What i'm not seeing is what software is doing the confirming. Is it wallets or something else?
Blocks don't get confirmed, transactions do. A transaction is considered "confirmed" when it is included in a block. There is a small chance that a block could be orphaned, so many choose to wait for additional blocks to be sure that the blockchain won't change before accepting that a transaction is securely embedded in the blockchain. Each additional block added to the blockchain after the transaction is considered an additional "confirmation" for the transaction.
Miners are the ones solving the blocks and broadcasting them to all the peers so they can be added to the blockchain.