United Airlines has a credit card with no annual fee, that gives 1 mile for every 2 dollars spent. Not to be confused with the one they always advertise - it gives more miles, but has a fee.
My primary suggestion is unrelated to which card you choose. Treat credit card purchases as if they are cash - meaning only buy something on your card if you can afford it, and then pay off your entire bill each month. Then, you are truly getting free miles - if you ever have to pay interest, you will be paying a lot more than the miles are worth.