The simplest case is a unidirectional channel. To pay you a series of micropayments, I send a series of transactions with each one slightly larger, so each is the sum of all my payments. You can only submit one such transaction to the blockchain. I lock my funds so you don't have to worry they won't be available.
Bidirectional channels and networking are elaborations on this idea. In bidirectional channels the main risk is that your counterparty will submit an obsolete state; there has to be a delay and you have to monitor the chain so you can submit a more recent state if that happens. You don't have to know who the counterparty is.
(Your analogy to a ledger with account balances is precisely correct for Ethereum, but Bitcoin actually has a somewhat different model.)
> (Your analogy to a ledger with account balances is precisely correct for Ethereum, but Bitcoin actually has a somewhat different model.)
My understanding is that in bitcoin it's a log of transactions -- a ledger. Ethereum is instead addresses holding totals -- more like an account statement.
I guess I've been misusing the term "ledger." You're exactly right for Ethereum. Bitcoin has transactions with "unspent outputs." Each transaction can have multiple inputs and outputs; to make a transaction you collect unspent outputs from previous transactions, use them as your inputs, and typically make two outputs, one to the payee address and one that holds the change.
Of course, trusting your counterparty requires you to know who they are, have stable addresses and so on.