Look at the cleaned up block of your code loop;
foreach ($result as $row)
{
$mail->addAddress('james@jhe.co.uk', 'James Coates');
$mail->Body("This subscription is expiring on" . $row['subRenew']);
$mail->send(); // DROP THIS LINE!!!
if (!$mail->Send())
echo 'Something went wrong';
else
echo 'Mail sent to somebody Complete.';
//Clear all addresses and attachments for the next iteration
$mail->clearAddresses();
$mail->clearAttachments();
}
As you can see you were doing the send (?) twice although function names are different.
Secondly - where are you using the results of your query loop? I see a static address but nothing from your loop.