How necessary are transaction fees? Why isn’t the block reward enough to maintain a community of miners?
Two main reasons:
The block reward is going to decrease over time, and even in Monero where there is a tail emission (i.e. the emission rate bottoms out at a nonzero value) the block reward isn't guaranteed to be greater than electricity costs.
Transaction fees allow miners to prioritize more important transactions if the network is congested, because people will generally be willing to pay more for more important transactions. Transaction fees also will reduce demand for block space during such periods of congestion, because the transaction fees will increase in response as users have to out-bid each other to get included in a block.
EDIT: It's also important to note that if posting a transaction has no cost, the demand for transactions has no hard limit. Eventually, people will find more uses for the blockchain (or spam the network with transactions that don't do anything), until the system reaches its limits. When that happens, transaction fees will be necessary to keep demand under control.