Why there are miner fees now?
Fees are there because of penny-flooding attack, which is a praticular kind of denial-of-service.

Without fees you would have a situation in which an attacker can fill the memory pool with 0-costs pending transactions, which would cause a sensible service degradation. 

An attacker could move its funds between addresses of its own, spamming thousands of transactions on the network without losing anything. The memory pool would grow until filled, and since miners are not able to discriminate between honest transactions and malicious transactions, this will result in no (or few) honest transactions being processed and included in the chain.

By adding a fee you are adding a cost to such attack. An attacker is no longer able to generate thousands (or more) of fake transactions at no costs.