Rewriting the code without use of GOTO
EDIT: FIXED

This specific instance can be rewritten as

public bool IsDirty(bool checkChildrenInd) {
  return ! (  Parent.NewId ||
              backup == null ||
              String.Equals(MissingDataValue, backup.MissingDataValue) ||
              String.Equals(PreviewDataValue, backup.PreviewDataValue) ||
              FieldOption == backup.FieldOption );
}


if this pattern is always the same, but there may be other conditions as you note in the comments, I note that CheckChildren 


Takes a parameter which is also the function parameter
returns on all code paths
result is never assigned to before the goto statement


If this is always true, you can factor it out. replace the CheckChildren label with a function:

private bool CheckChildren(bool checkChildrenInd){
    bool result = false;
    if (!checkChildrenInd)
    {
        return result;
    }
    return result;
}


and the goto CheckChildren; with return CheckChildren(checkChildrenInd);

if result is possibly set to true before the goto statement, you will need to pass result as a variable to the funcion too (and include it in the signature).