I just go through and manually tab out elements. When your code looks like this, those errors are much easier to spot.
Code:
<html>
<head>
<title>Some Title</title>
</head>
<body>
<table border='...' ...>
<tr>
<td something='...'>
<!-- a bunch of stuff -->
</td>
<td something_else=''>
<!-- another table! -->
<table border='0' width='33%'>
<tr>
<td>
<a href='http://random.net/cgi-bin/login.cgi'>Login</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
I use 2 spaces per logical element, some elements just don't make sense to space out. Some people use 4 spaces, that can be a little much seeing as how HTML gets very nested sometimes. When you're
consistent with this type of spacing, you can spot errors easily, because tags won't align properly.
Other than proper spacing, try running the site through one of the W3C validators. Don't try to validate on strict, just copy/paste the appropriate 'transitional' doctype into your code (above the <html> tag), and see the results. The validator can spit a ton of errors at you, but if you step through 1 by 1, and keep uploading your page (or better yet, modifying the page on your live server) you can nail them out pretty fast.