The fee depends on 2 factors:
* the size of the transaction (how many bytes it has)
* how busy the network is
The size of the transaction depends on the number of inputs and outputs.
So if you gathered that 0.001 BTC by sending to your wallet many many very small amounts, now you will pay a huge fee.
As somebody else said, you'll have to rent a truck to carry your pennies to the supermarket.
Now the network is very busy too, making the fees "explode". Just check the graph:
https://btc.com/stats/unconfirmed-tx