To parse XML, use an XML-aware tool. I know you said you have restrictions on the system you're on, but I'm going to give you a solution that will work once you convince your manager/whatever that for robust and reliable operation, you need to install XMLStarlet to do proper XML parsing.
With XMLStarlet, given the XML file
<?xml version="1.0"?>
<root>
<headertag>
<subtag/>
</headertag>
<headertag>
<subtag>Don't delete me!</subtag>
</headertag>
<headertag>
</headertag>
<headertag>
Not empty
</headertag>
</root>
the following removes all empty tags, no matter what their names are or where in the document they occur:
$ xmlstarlet ed -d '//*[not(normalize-space())]' file.xml >newfile.xml
$ cat newfile.xml
<?xml version="1.0"?>
<root>
<headertag>
<subtag>Don't delete me!</subtag>
</headertag>
<headertag>
Not empty
</headertag>
</root>
The xmlstarlet command may sometimes be called just xml depending on how it's packaged on your system.
XMLStarlet is available here: http://xmlstar.sourceforge.net/
... but see if your default package manager has it first.
awkorsed, it might be useful to know which versions of them you have. We know GNU tools have some useful non-standard extensions...