Does Drupal's theme('table') works in email body?
You can read drupal_mail() in HTML for how to output HTML in an email sent with drupal_mail(). 

As you are outputting links, I will add a note about that. By default l() outputs relative links that outside the website are not much useful. You need to force Drupal to output absolute links, for example using the following code.

if ($row-&gt;subject) {
  $titlerow = l($row-&gt;subject, "node/{$row-&gt;nid}", array('absolute' =&gt; TRUE)) . '&lt;/br&gt;' // Your code here is not complete.
}
$rows[] = array(
  $titlerow,
  t('Reply posted by !user-link', array('!user-link' =&gt; l($row-&gt;name, "user/{$row-&gt;uid}", array('absolute' =&gt; TRUE)))) 
);


If you have the Devel module installed, you can see (using the following code) the difference between the output of your code, and mine.

print l('Test page', 'node/1') . "\n";
print l('Test page', 'node/1', array('absolute' =&gt; TRUE));


In my test site, what I get is the following.

&lt;a href="/dr72/node/1"&gt;Test page&lt;/a&gt;
&lt;a href="http://tero.local/dr72/node/1"&gt;Test page&lt;/a&gt;


As side note, remember that the $options parameter for l() can receive the same values the $options parameter for url() accepts.