Why should I keep a Monero node running? Will I be making profit from network fees from transfers?
Purpose is to independently transact yourself, and verify the blockchain state yourself. If you don't need to transact or check transactions, you don't need to run a node.
If you don't run a node, you must rely on others to do the checks for you and broadcast your TX to the network when you want to transact.
And no, nodes don't make any profit unless they also mine.
For average user behind NAT (like me), he's hardly contributing to the network (as he's not accepting connections, and is connected to 8 open nodes by default) and his node is mostly of use to only himself. Nodes with lots of connections and high bandwidth are those which actually matter to the network and form its backbone: nodes of pools, exchanges, wallet providers, block explorers, big services, enthusiasts etc. and they're incentivized by their own (mostly economic) interests, and not by direct monetary incentive.
The purpose of running a Monero node is to use Monero, the cryptocurrency. The monero node is a p2p program which keeps the blockchain in sync with the network at large. It is your connection to the Monero network. The blockchain is needed to sent and receive monero transactions. Since those are private by default, you gain the ability to transact privately with other Monero users.
You can earn money (in the form of monero) by mining with your node, which is based both from transaction fees and the inherent block subsidy. You do this with:
start_mining ADDRESS THREADS. ADDRESS is your Monero address (which you'll have already created using monero-wallet-cli or monero-wallet-gui), and THREADS is the number of threads to use (you can start from 1, and increase one by one to see how much hash rate you get). It is much more like a lottery than like a steady stream, however, so you may never win that lottery (but when you do, you win about 5.5 monero, about $2200 at current prices). There's a chance at the prize every two minutes on average.