I've tried to cancel a couple of cards. They passed me off to a "retention specialist". After a short conversation, they offered to waive the fee. A little later they offered some miles (2000 to 10,000, depending on the card).
I just smiled and reluctantly said OK.
And I usually either put nothing on the card after the initial spend to trigger the bonus, or else pay the balance off every month.