Functionally, both will have the same effect: they will return TRUE if $var is an empty string, if $var is equal to zero or to boolean FALSE or NULL, or if $var is not set. However, empty() will not generate a notice-level error if $var is not set, whereas the '==' comparison will generate such an error.
If an explicit value of zero (0, 0.0, '0') is to be considered valid while an empty string is not, then you do not want to use either of those methods. You'll instead want to make use of the '===' identical operator, e.g.:
if(!isset($_POST['field']) or trim($_POST['field']) === '')
{
$error = TRUE;
echo "<p class='error'>You must enter a value for <b>Field</b>.</p>\n";
}