Sachverhalt:
A.
Gegenüber A._ veranlagte die Steuerkommission B._/AG mit Verfügung vom 12. Dezember 2013 für die Staats- und Gemeindesteuern der Steuerperiode 2003 ein steuerbares Einkommen von Fr. 256'700-- (unter Berücksichtigung von Aufrechnungen im Umfang von Fr. 159'890.--). Für 2004 belief sich das am gleichen Tag veranlagte Einkommen auf Fr. 100'800.-- (aufgerechnet: Fr. 10'000.--). Die Aufrechnungen erfolgten unter Hinweis auf ein Strafverfahren gegen A._ vor dem örtlichen Bezirksgericht (wegen Veruntreuung, Urkundenfälschung und Steuerbetrugs betreffend unzulässige Geldentnahmen aus einer von der Pflichtigen beherrschten Aktiengesellschaft). Beide Veranlagungen 2003 und 2004 wurden rechtskräftig aufgrund eines Urteils (Nichteintretensentscheids) des Verwaltungsgerichts des Kantons Aargau vom 12. Mai 2015.
B.
Im Jahr 2015 ersuchte A._ ein erstes Mal um die Revision der Veranlagungsverfügungen 2003 und 2004. Das Verfahren endete mit einem Nichteintretensentscheid des kantonalen Verwaltungsgerichts vom 30. November 2016 wegen Nichtleistens des Kostenvorschusses.
C.
Am 17. August 2018 gelangte A._ mit einer als "Revisionsgesuch" bezeichneten Eingabe erneut an die Steuerkommission B._/AG (zweites Verfahren). Diese wies das Gesuch ebenso ab wie die dagegen gerichtete Einsprache. Nach erfolglos gebliebenem Rekurs an das kantonale Spezialverwaltungsgericht (Abt. Steuern) wandte sich die Betroffene am 10. Februar 2020 an das Verwaltungsgericht, das ihre Beschwerde abwies, soweit es darauf eintrat (Urteil vom 20. Mai 2020).
D.
Am 10. Juli 2020 hat A._ gegen das Urteil vom 20. Mai 2020 Beschwerde in öffentlich-rechtlichen Angelegenheiten beim Bundesgericht eingereicht. Sie stellt den Antrag, die Veranlagungsverfügungen vom 12. Dezember 2013 betreffend die Steuerperioden 2003 und 2004 zu revidieren und neu zu veranlagen. Die darin aufgerechneten Geldentnahmen aus der Aktiengesellschaft seien zu korrigieren. Eventualiter seien die besagten Verfügungen als nichtig zu erklären. Subeventualiter sei das in der Eingabe an das Verwaltungsgericht gestellte und begründete Revisionsbegehren an die zuständige Behörde (d.h. die Steuerkommission B._/AG) weiterzuleiten. Die für 2003 und 2004 zu viel bezogenen Steuern sowie die entstandenen Betreibungskosten vollumfänglich (inkl. Vergütungszins) zurückzuerstatten.
E.
Das Kantonale Steueramt und das Verwaltungsgericht des Kantons Aargau schliessen auf Abweisung der Beschwerde. Die Eidgenössische Steuerverwaltung hat auf eine Vernehmlassung verzichtet, ebenso wie der Gemeinderat B._/AG.
Erwägungen:
1.
1.1. Angefochten ist ein kantonal letztinstanzlicher Endentscheid betreffend die direkten Steuern des Kantons. Dagegen steht gemäss Art. 82 ff. BGG in Verbindung mit Art. 73 ff. des Bundesgesetzes vom 14. Dezember 1990 über die Harmonisierung der direkten Steuern der Kantone und Gemeinden (StHG, SR 642.14) die Beschwerde in öffentlich-rechtlichen Angelegenheiten an das Bundesgericht offen. Die Beschwerdeführerin ist im kantonalen Verfahren mit ihren Anträgen nicht durchgedrungen, weshalb sie zur Beschwerde in öffentlich-rechtlichen Angelegenheiten legitimiert ist (Art. 89 Abs. 1 BGG). Auf ihr form- und fristgerecht eingereichtes Rechtsmittel ist - mit folgendem Vorbehalt (vgl. unten E. 1.2) - einzutreten. Die Beschwerdegegnerin ist, entgegen der Rubrumsrüge der Beschwerdeführerin (vgl. Ziff. 1 ff. der Beschwerdeschrift), gemäss der üblicherweise befolgten Vorgehensweise im Bereich der Staats- und Gemeindesteuern zu bezeichnen.
1.2. Die Verpflichtung zur Leistung eines Zinses auf bereits eingenommenen und zurückzuzahlenden Steuern muss sich aus dem kantonalen Recht ergeben. Dass ein solcher Anspruch nach dem Recht des Kantons Aargau besteht, hat die rechtskundig vertretene Beschwerdeführerin nicht dargelegt, weshalb auf den entsprechenden Teil ihres Antrags nicht eingetreten werden kann (vgl. dazu mutatis mutandis zur interkantonalen Doppelbesteuerung u.a. das Urteil 2C_655/2016 vom 17. Juli 2017 E. 1.2 mit Hinweisen).
1.3. Mit der Beschwerde in öffentlich-rechtlichen Angelegenheiten kann namentlich die Verletzung von Bundesrecht und Völkerrecht gerügt werden. Das Bundesgericht wendet das Recht von Amtes wegen an (Art. 106 Abs. 1 BGG), prüft jedoch unter Berücksichtigung der allgemeinen Rüge- und Begründungspflicht (Art. 42 Abs. 1 und 2 BGG) grundsätzlich nur die geltend gemachten Rechtsverletzungen, sofern rechtliche Mängel nicht geradezu offensichtlich sind (BGE 142 I 135 E. 1.5). Abgesehen von den in Art. 95 lit. c und d BGG geregelten Ausnahmen bildet der Eingriff in kantonales oder kommunales Recht keinen eigenständigen Beschwerdegrund und kann das Bundesgericht die Auslegung bzw. die Anwendung kantonalen Verfassungs-, Gesetzes- oder Verordnungsrechts lediglich daraufhin überprüfen, ob dadurch Bundes-, Völker- oder interkantonales Recht verletzt wird (Art. 95 lit. a, b und e BGG). Dabei steht die Verletzung des Willkürverbots (Art. 9 BV) im Vordergrund (BGE 138 I 162 E. 3.3; 136 I 241 E. 2.5.2). In Bezug auf die Verletzung von Grundrechten und weiteren verfassungsmässigen Rechten sowie von kantonalem und interkantonalem Recht gilt eine qualifizierte Rüge- und Substanziierungspflicht (Art. 106 Abs. 2 BGG; BGE 142 II 369 E. 2.1 m.w.H.).
1.4. Das Bundesgericht legt seinem Urteil den Sachverhalt zugrunde, den die Vorinstanz festgestellt hat (Art. 105 Abs. 1 BGG). Eine Berichtigung oder Ergänzung der vorinstanzlichen Sachverhaltsfeststellungen ist von Amtes wegen (Art. 105 Abs. 2 BGG) oder auf Rüge hin (Art. 97 Abs. 1 BGG) möglich. Von den tatsächlichen Grundlagen des vorinstanzlichen Urteils weicht das Bundesgericht jedoch nur ab, wenn diese offensichtlich unrichtig sind oder auf einer Rechtsverletzung im Sinne von Art. 95 BGG beruhen, sprich eine im Sinne von Art. 9 BV willkürliche Sachverhaltsfeststellung vorliegt und die Behebung des Mangels für den Verfahrensausgang entscheidend sein kann (Art. 97 Abs. 1 BGG; BGE 142 I 135 E. 1.6 S. 144 f.; 140 III 264 E. 2.3 S. 265 f.).
1.5. Streitgegenstand des vorliegenden Verfahrens ist einerseits, ob das Verwaltungsgericht auf das ihm gegenüber gestellte Revisionsbegehren zu Recht nicht eingetreten ist (vgl. unten E. 2). Andererseits ist umstritten, ob die Vorinstanz rechtskonform davon abgesehen hat, auf Nichtigkeit der Veranlagungsverfügungen 2003 und 2004 zu erkennen (vgl. unten E. 3).
2.
Gemäss § 203 Abs. 1 des Steuergesetzes des Kantons Aargau vom 15. Dezember 1998 (StG/AG) und Art. 51 Abs. 4 StHG ist ein Revisionsbegehren bei jener Instanz einzureichen, welche sich zuletzt mit der Sache befasst hat.
2.1. In Anwendung dieser Bestimmungen ist das Verwaltungsgericht im angefochtenen Urteil zum Schluss gelangt, hier nicht diese Instanz gewesen zu sein, an welche ein allfälliges Revisionsgesuch zu richten war. Denn es habe sich im ersten Verfahren gegenüber dem Revisionsgesuch der Beschwerdeführerin nicht materiell mit der Sache befasst, sondern lediglich einen Nichteintretensentscheid wegen Nichtleistens des Kostenvorschusses gefällt (vgl. oben Sachverhalt/B. u. E. II./1.3 des angefochtenen Urteils, nachfolgend: a.U.). Im zweiten Verfahren habe die Beschwerdeführerin erst vor dem Verwaltungsgericht ein "effektives Revisionsgesuch" hinsichtlich der Veranlagungen 2003 und 2004 gestellt.
2.2. Für diese Würdigung hat sich die Vorinstanz auf folgende Erwägungen gestützt:
2.2.1. Im zweiten Verfahren sei zwar in den Verfahrensstadien gegenüber der Steuerkommission formell von "Revisionsgesuch" und "Revisionsverfügung" gesprochen worden. Auch der Einspracheentscheid vom 15. Februar 2019 habe den Begriff des Revisionsgesuchs aufgenommen. In keinem der Entscheide seien jedoch die Voraussetzungen der Revision in materieller Hinsicht behandelt worden, weil schon die Rechtsschriften der Steuerpflichtigen (und jetzigen Beschwerdeführerin) keine entsprechende Begründung enthalten hätten. Ebenso wenig habe sich das Spezialverwaltungsgericht (Abt. Steuern) in seinem Urteil vom 19. Dezember 2019 zur Frage einer allfälligen Revision geäussert und sich stattdessen ausschliesslich mit dem (unbestrit-tenermassen bereits vor der Steuerkommission geltend gemachten) Vorwurf beschäftigt, die Veranlagungen 2003 und 2004 seien als geradezu nichtig einzustufen (vgl. zum Ganzen E. II./1.1 u. 1.3 a.U.).
2.2.2. Wenn ein Revisionsgesuch zum ersten Mal im verwaltungsgerichtlichen Verfahren effektiv gestellt und begründet sowie von der angerufenen Rechtsmittelbehörde behandelt werde, so liege darin eine unzulässige Beschwerdeänderung. Das Rechtsmittelverfahren vor dem Verwaltungsgericht werde durch den Streitgegenstand begrenzt, der durch die angefochtene, im erstinstanzlichen Verwaltungsverfahren ergangene Verfügung (als Anfechtungsobjekt) bestimmt sei. Nur was Gegenstand des Verwaltungsverfahrens gewesen sei oder im verwaltungsinternen Einspracheverfahren zusätzlich geregelt werde (erstinstanzliche Verfügung in Verbindung mit dem vor ihr gestellten Gesuch), könne im nachfolgenden verwaltungsgerichtlichen Rechtsmittelverfahren Streitgegenstand sein (vgl. zum Ganzen E. II./1.2 a.U.).
2.3. Was die Beschwerdeführerin gegen diese vorinstanzlichen Erwägungen einwendet, vermag zu keinem anderen Ergebnis zu führen.
2.3.1. Sie macht geltend, der vorinstanzliche Nichteintretensentscheid stelle einen besonders stossenden übertriebenen Formalismus dar und beruhe auf einer willkürlichen Anwendung des kantonalen Verfahrensrechts (vgl. oben E. 1.3). Diese Vorbringen stützt sie im Wesentlichen auf die Behauptung, in allen Verfahrensstadien vor demjenigen gegenüber dem Verwaltungsgericht sei unumstritten gewesen, dass es sich um die Revision eines rechtskräftigen Entscheids handle. Auch bezögen sich Teile des Einspracheentscheids auf Ausführungen zu § 203 Abs. 2 StG/AG bzw. Art. 51 Abs. 2 StHG, die sich beide mit dem Institut der Revision befassen würden.
2.3.2. Mit ihrer Argumentation vermag die Beschwerdeführerin jedoch in keiner Weise substanziiert (vgl. oben E. 1.3) die vorinstanzliche Beurteilung zu erschüttern, wonach in allen Stadien im Vorfeld des Verwaltungsgerichts weder ein effektiver Revisionsantrag vorgelegen habe noch eine dahingehende Begründung. Deshalb hatten die Steuerkommission (sowohl bei ihrer Verfügung als dann bei ihrem Einspracheentscheid) und dann das Spezialverwaltungsgericht sich gar nicht erst mit der Frage einer allfälligen Revision zu befassen.
2.3.3. Gemessen an den gesetzlichen Verfahrenserfordernissen erwies sich das Vorgehen der Beschwerdeführerin als unzulässig. Gegenüber der Steuerkommission bezeichnete sie ihre erste Eingabe zwar als "Revisionsgesuch". Auch berief sie sich auf Bestimmungen, die sich mit dem Institut der Revision befassen. Ihre Anträge und deren Begründung konnten aber von der Steuerkommission nur so verstanden werden, dass es ausschliesslich um die Nichtigkeit der Veranlagungen 2003 und 2004 ging. Gegen diese Beschränkung auf die Frage der Nichtigkeit wandte sich die Beschwerdeführerin bezeichnenderweise weder im Einspracheverfahren noch gegenüber dem Spezialverwaltungsgericht in irgendeiner Weise. Beide Rechtsschriften enthalten nichts, was die Behörden als solche Einwendung hätten auffassen müssen. Dementsprechend hatte sich weder die Verfügung noch der Einspracheentscheid der Steuerkommission mit der Frage einer allfälligen Revision auseinanderzusetzen, nicht mehr als das Urteil des Spezialverwaltungsgerichts. Die entsprechenden Ausführungen der Vorinstanz sind als bundesrechtskonform einzustufen; sie ist zu Recht auf das erstmals vor ihr effektiv gestellte zweite Revisionsgesuch nicht eingetreten.
2.3.4. An diesem Ergebnis ändert auch nichts, wenn die Beurteilung des Verwaltungsgerichts - entgegen der Auffassung der Beschwerdeführerin - nicht nur unter dem Gesichtspunkt einer willkürlichen Anwendung kantonalen Verfahrensrechts (vgl. oben E. 2.3.1) überprüft wird, sondern unter dem Blickwinkel der bundesrechtskonformen Anwendung harmonisierten Steuerrechts zur Revision rechtskräftiger Steuerveranlagungen (vgl. oben E. 1.3).
3.
3.1. Gemäss § 179 Abs. 1 StG/AG hat die Veranlagungsbehörde alle tatsächlichen und rechtlichen Verhältnisse, die für eine vollständige und richtige Besteuerung massgebend sind, von Amtes wegen abzuklären. Die Beschwerdeführerin macht geltend, in Bezug auf die Veranlagungsverfahren 2003 und 2004 habe die Steuerkommission ihre Untersuchungspflicht auf derart krasse Weise verletzt, dass die beiden daraus hervorgegangenen Verfügungen sich als geradezu nichtig erweisen würden.
3.1.1. Die Kommission habe für 2003 Einkünfte von Fr. 159'890.-- aufgerechnet und für 2004 solche von Fr. 10'000.--, unter Hinweis auf das gegen die Pflichtige laufende Strafverfahren wegen Veruntreuung, Urkundenfälschung und Steuerbetrugs betreffend unzulässige Entnahmen aus der von ihr beherrschten Aktiengesellschaft. Dieses Strafverfahren habe aber zu einem Freispruch geführt, von dem die Steuerkommission bereits vor dem Zeitpunkt ihrer Veranlagungsverfügungen Kenntnis gehabt habe.
3.1.2. Dennoch habe sie das Strafurteil nicht beim Bezirksgericht eingefordert und die auf den strafrechtlich verneinten Geldentnahmen beruhenden Aufrechnungen vorgenommen, wie wenn der Freispruch nicht erfolgt und die Entnahme als tatsächlich geschehen eingestuft worden wären. Die Folgen dieser Unterlassung seien derart weitreichend, dass die besagten Veranlagungen als nichtig zu beurteilen seien.
3.2. Fehlerhafte Verwaltungsakte sind in aller Regel nicht nichtig, sondern bloss anfechtbar, und sie erwachsen dementsprechend durch Nichtanfechtung in Rechtskraft. Nichtigkeit der Verfügung oder des Entscheids tritt nach ständiger bundesgerichtlicher Rechtsprechung ein, wenn: (a) der ihnen anhaftende Mangel besonders schwer ist, (b) er offensichtlich oder zumindest leicht erkennbar ist und (c) zudem die Rechtssicherheit durch die Annahme der Nichtigkeit nicht ernsthaft gefährdet wird. Als Nichtigkeitsgründe fallen vorab funktionelle und sachliche Unzuständigkeit der entscheidenden Behörde sowie krasse Verfahrensfehler in Betracht. Inhaltliche Mängel einer Verfügung oder eines Entscheids führen nur ausnahmsweise zur Nichtigkeit. Fehlt einer Verfügung oder einem Entscheid zufolge Nichtigkeit jegliche Rechtsverbindlichkeit, so ist das durch die Behörde, die mit der Sache befasst ist, jederzeit und von Amtes wegen zu beachten (vgl. BGE 138 II 501 E. 3.1; 137 I 273 E. 3.1; 137 III 217 E. 2.4; 136 II 489 E. 3.3; 133 II 366 E. 3.1 u. 3.2; 132 II 342 E. 2.1; siehe zum Ganzen auch das Urteil 2C_596/2012 vom 19. März 2013 E. 2.1 in: StR 68/2013 S. 474).
3.3. Hier hat die Vorinstanz zu Recht festgehalten, dass die Veranlagungsbehörde wohl ihre Untersuchungspflicht gemäss § 179 StG/AG verletzt hat. Diese Verletzung ist aber nicht derart schwerwiegend, dass die beiden Veranlagungsverfügungen als nichtig einzustufen wären.
3.3.1. Das angefochtene Urteil hat in einem ersten Schritt die Einschätzung des Spezialverwaltungsgerichts bestätigt, wonach wohl ein Verstoss gegen die Untersuchungspflicht vorgelegen hat, indem die Veranlagungsbehörde trotz fehlenden Zugriffs auf das die Beschwerdeführerin freisprechende Strafurteil des Bezirksgerichts vom 7. März 2012 Einkommensaufrechnungen für 2003 und 2004 veranlasste. Um ihrer Untersuchungspflicht nachzukommen, hätte die Steuerkommission nicht nur die Beschwerdeführerin erneut und mit Nachdruck zur Einreichung des freisprechenden Strafurteils auffordern, sondern auch beim Bezirksgericht gestützt auf § 171 Abs. 3 StG/AG ein Amtshilfegesuch stellen können und müssen.
Wie die Vorinstanz in einem zweiten Schritt festgehalten hat, wiegt die der Steuerkommission vorzuwerfende Unterlassung aber nicht derart schwer, dass Nichtigkeit anzunehmen wäre. Zwar war mittlerweile erstellt, dass die Steuerkommission vom Freispruch wusste. Die Gründe für den Freispruch waren ihr jedoch nicht bekannt. Damit war auch nicht ohne weiteres klar, ob es aus steuerrechtlicher Sicht als hinreichend nachgewiesen erachtet werden konnte bzw. musste, dass die Pflichtige die Geldentnahmen nicht vorgenommen hatte. Der Kommission konnte also nicht vorgeworfen werden, sie habe die besagten Beträge aufgerechnet, obwohl für sie unzweifelhaft hätte feststehen müssen, dass die Entnahmen gar nicht erfolgt seien (vgl. E. II./3.3.2 a.U.).
3.3.2. Im Gegensatz zum Sachverhalt des von der Beschwerdeführerin angerufenen Bundesgerichtsurteils 2C_679/2016 vom 11. Juli 2017 hat das Verwaltungsgericht zu Recht festgehalten, dass die Steuerkommission hier keine offensichtlich aktenwidrige Veranlagung vornahm, welche dem bei ihr bestehenden Wissen in einem durch nichts zu rechtfertigenden Ausmass widersprochen hätte. Die tatsächlich gegebene Pflichtverletzung erreichte den erforderlichen Schweregrad für die Annahme von Nichtigkeit somit nicht.
3.3.3. Nichts anderes ergibt sich im Übrigen aus der Argumentation der Beschwerdeführerin, im Bereich der direkten Bundessteuer seien die betreffenden Veranlagungen im Nachhinein korrigiert worden. Auch darin liegt kein hinreichender Grund, um die Veranlagungen für die Kantons- und Gemeindesteuern als geradezu nichtig einzustufen.
4.
Aus den vorstehenden Erwägungen ist im Übrigen zu schliessen, dass die weiteren Anträge der Beschwerdeführerin sich ebenfalls als unbegründet erweisen. Wenn das Verwaltungsgericht zu Recht auf das Revisionsgesuch nicht eingetreten ist, dann ist das im Beschwerdeverfahren zum Thema Nichtigkeit gestellte Revisionsbegehren auch nicht an die Steuerkommission der Gemeinde weiterzuleiten. Und hat die Vorinstanz die Nichtigkeit der umstrittenen Veranlagungsverfügungen rechtskonform verneint, so erübrigt sich, irgendwelche Steuern oder Betreibungskosten an die Beschwerdeführerin zurückzuerstatten (vgl. dazu schon oben E. 1.2).
5.
Nach dem Gesagten ist die Beschwerde abzuweisen, soweit darauf eingetreten werden kann (vgl. oben E. 1.2), und wird die Beschwerdeführerin kostenpflichtig (vgl. Art. 65 f. BGG).
Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2.
Die Gerichtskosten von Fr. 2'000.-- werden der Beschwerdeführerin auferlegt.
3.
Dieses Urteil wird den Verfahrensbeteiligten, dem Verwaltungsgericht des Kantons Aargau, 2. Kammer, und der Eidgenössischen Steuerverwaltung schriftlich mitgeteilt.
Lausanne, 6. Mai 2021
Im Namen der II. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Seiler
Der Gerichtsschreiber: Matter