Bank of America offers several credit cards with great rewards for different types of spenders — and many have no annual fee.