How does a full node without hashing power help the Monero network? What is the contribution made by non-mining full nodes?
A non mining node helps make partitioning attacks harder. If there are few nodes, an attacker can more easily run sybils and get all connections from new nodes to be to the sybils, and present then a false blockchain that they will not detect (in Monero, like in Bitcoin, you need to be connected to just one honest node to get onto the right blockchain).
If the non mining node is also providing RPC services, then this is a help too, for people who can't, or won't, run their own node (to their detriment, but sometimes circunstances dictate this).
Any node, whether mining or non mining, will tend to strengthen the connectivity of the network as a whole, also making partitioning attacks harder.