You can get a Diners club card, branded with the BA logo fee free for the first year if you contact BA Exec club. This gives you one mile per 10 GBP, or 1 mile per 5GBP for BA purchases.
Natwest also do a BA branded credit card which gives a slightly better earning rate than their plain card of 1 mile per 15 GBP. Again contact BA exec club. They have had joining bonus of upto 400 miles in the past few months.
There are joining bonuses from AMEX thru the individual airlines. For example, Virgin give 3000 miles for the green and 5000 miles for the gold plus 1000 and 2000 respectivily for additional cards. These miles are deposited into your airline account rather than MR.