Sachverhalt:
A.
Die IV-Stelle des Kantons Zürich sprach dem 1965 geborenen A._ mit Verfügung vom 24. Februar 2005 eine halbe Invalidenrente - nebst Zusatzrenten - ab 1. September 2003 zu (Invaliditätsgrad 55 %). Am 21. Mai 2008 bestätigte sie einen unveränderten Rentenanspruch (Invaliditätsgrad neu 54 %). Im Juli 2013 leitete die IV-Stelle (erneut) ein Revisionsverfahren ein. Es stellte sich heraus, dass A._ nicht nur zwei (der IV-Stelle bis anhin bekannte) Arbeitgeber hatte, sondern seit März 2008 ein weiteres Arbeitsverhältnis bestand. Der Einkommensvergleich ergab nunmehr einen Invaliditätsgrad von 36 %. Eines der drei Arbeitsverhältnisse wurde auf den 31. Oktober 2014 aufgelöst. Mit Verfügung vom 2. Februar 2015 hob die IV-Stelle die bisherige halbe Invalidenrente rückwirkend auf den 1. Januar 2009 auf. Mit Verfügung vom 10. Februar 2015 verpflichtete sie A._, unrechtmässig bezogene Leistungen im Betrag von Fr. 87'239.- zurückzuerstatten.
Die gegen die Verfügungen vom 2. und 10. Februar 2015 erhobenen Beschwerden hiess das Sozialversicherungsgericht des Kantons Zürich (nach Vereinigung der Verfahren) in dem Sinne gut, als es die angefochtenen Verfügungen aufhob und die Sache zur Abklärung im Sinne der Erwägungen und neuen Verfügung an die Verwaltung zurückwies (Entscheid vom 28. Oktober 2016). Nach weiteren Ermittlungen - insbesondere Einholung des bidisziplinären (psychiatrisch/neurologisch) Gutachtens des Swiss Medical Assessement- and Business-Centers (SMAB) vom 14. September 2017 - und Durchführung des Vorbescheidverfahrens bestätigte die IV-Stelle mit Verfügung vom 30. November 2017 die Rentenaufhebung auf den 1. Januar 2009.
B.
Die dagegen erhobene Beschwerde wies das Sozialversicherungsgericht des Kantons Zürich mit Entscheid vom 28. Februar 2019 ab.
C.
A._ lässt mit Beschwerde in öffentlich-rechtlichen Angelegenheiten beantragen, unter Aufhebung des Entscheids vom 28. Februar 2019 sei ihm "ab Januar 2019 weiterhin" eine halbe Invalidenrente zuzusprechen; eventualiter sei die Sache zur Vornahme einer polydisziplinären Begutachtung an die Vorinstanz zurückzuweisen.

Erwägungen:
1.
1.1. Wie sich aus der Beschwerdebegründung ergibt (vgl. <ref-ruling> E. 1 S. 127; Urteil 8C_62/2018 vom 19. September 2018 E. 1.2.2, nicht publ. in: <ref-ruling>), verlangt der Beschwerdeführer die Weiterausrichtung der bisherigen halben Invalidenrente ab dem 1. Januar 2009. Das im Rechtsbegehren genannte Jahr 2019 ist als Verschrieb aufzufassen, weshalb das Bundesgericht nicht daran gebunden ist (vgl. <ref-law>).
1.2. Neue Tatsachen und Beweismittel dürfen vor Bundesgericht nur so weit vorgebracht werden, als erst der Entscheid der Vorinstanz dazu Anlass gibt (<ref-law>), was in der Beschwerde näher darzulegen ist. Der vorinstanzliche Verfahrensausgang allein bildet noch keinen hinreichenden Anlass im Sinne von <ref-law> für die Zulässigkeit von unechten Noven, die bereits im kantonalen Verfahren ohne Weiteres hätten vorgebracht werden können. Das Vorbringen von Tatsachen, die sich erst nach dem angefochtenen Entscheid ereigneten oder entstanden (echte Noven), ist vor Bundesgericht unzulässig (<ref-ruling> E. 1.2 S. 22 f.; <ref-ruling> E. 3.2.2.2 S. 548).
Der Beschwerdeführer legt im bundesgerichtlichen Verfahren neu die Berichte des Spitals B._ vom 25. April 2019 und des Spitals C._ vom 12. Februar 2019 ins Recht. Der erstgenannte Bericht ist - wie die entsprechenden Behauptungen - als echtes Novum von vornherein unzulässig. Weshalb der Bericht des Spitals C._ nicht bereits im vorinstanzichen Verfahren hätte eingereicht werden können, wird nicht ausgeführt und ist auch nicht ersichtlich; er ist somit ebenfalls unzulässig.
1.3. Mit der Beschwerde in öffentlich-rechtlichen Angelegenheiten kann eine Rechtsverletzung nach Art. 95 f. BGG gerügt werden. Das Bundesgericht wendet das Recht von Amtes wegen an (<ref-law>). Dennoch prüft es - offensichtliche Fehler vorbehalten - nur die in seinem Verfahren gerügten Rechtsmängel (Art. 42 Abs. 1 f. BGG; <ref-ruling> E. 2.2.1 S. 389). Es legt seinem Urteil den Sachverhalt zugrunde, den die Vorinstanz festgestellt hat (<ref-law>). Es kann ihre Sachverhaltsfeststellung von Amtes wegen berichtigen oder ergänzen, wenn sie offensichtlich unrichtig ist oder auf einer Rechtsverletzung im Sinne von <ref-law> beruht und wenn die Behebung des Mangels für den Verfahrensausgang entscheidend sein kann (Art. 97 Abs. 1 und Art. 105 Abs. 2 BGG).
2.
2.1. Der Anspruch auf eine Rente der Invalidenversicherung setzt u.a. einen Invaliditätsgrad von mindestens 40 % voraus (<ref-law>). Für die Bestimmung des Invaliditätsgrades wird das Erwerbseinkommen, das die versicherte Person nach Eintritt der Invalidität und nach Durchführung der medizinischen Behandlung und allfälliger Eingliederungsmassnahmen durch eine ihr zumutbare Tätigkeit bei ausgeglichener Arbeitsmarktlage erzielen könnte, in Beziehung gesetzt zum Erwerbseinkommen, das sie erzielen könnte, wenn sie nicht invalid geworden wäre (<ref-law> i.V.m. <ref-law>).
2.2. Ändert sich der Invaliditätsgrad eines Rentenbezügers erheblich, so wird die Rente von Amtes wegen oder auf Gesuch hin für die Zukunft entsprechend erhöht, herabgesetzt oder aufgehoben (<ref-law> [SR 830.1]). Anlass zur Rentenrevision gibt jede wesentliche Änderung in den tatsächlichen Verhältnissen seit Zusprechung der Rente, die geeignet ist, den Invaliditätsgrad und damit den Anspruch zu beeinflussen. Insbesondere ist die Rente bei einer wesentlichen Änderung des Gesundheitszustandes revidierbar. Weiter sind, auch bei an sich gleich gebliebenem Gesundheitszustand, veränderte Auswirkungen auf den Erwerbs- oder Aufgabenbereich von Bedeutung (<ref-ruling> E. 2.3 S. 10 f. mit Hinweisen). Liegt in diesem Sinn ein Rückkommenstitel vor, gilt es grundsätzlich, mit Wirkung ex nunc et pro futuro einen rechtskonformen Zustand herzustellen. Dabei ist auf der Grundlage eines richtig und vollständig festgestellten Sachverhalts der Invaliditätsgrad im Zeitpunkt der Verfügung über die Herabsetzung oder Aufhebung einer Rente zu ermitteln (SVR 2018 IV Nr. 20 S. 63, 9C_535/2017 E. 2.1; 2017 IV Nr. 4 S. 7, 9C_770/2015 E. 2.2).
2.3. Die Herabsetzung oder Aufhebung einer Rente erfolgt rückwirkend ab Eintritt der für den Anspruch erheblichen Änderung, wenn der Bezüger die Leistung zu Unrecht erwirkt hat oder der ihm nach Artikel 77 zumutbaren Meldepflicht nicht nachgekommen ist (<ref-law>, sowohl in der bis Ende 2014 als auch in der seither geltenden Fassung).
Jede wesentliche Änderung in den für eine Leistung massgebenden Verhältnissen ist von den Bezügerinnen und Bezügern, ihren Angehörigen oder Dritten, denen die Leistung zukommt, dem Versicherungsträger oder dem jeweils zuständigen Durchführungsorgan zu melden (<ref-law>). Der Berechtigte oder sein gesetzlicher Vertreter sowie Behörden oder Dritte, denen die Leistung zukommt, haben jede für den Leistungsanspruch wesentliche Änderung, insbesondere eine solche des Gesundheitszustandes, der Arbeits- oder Erwerbsfähigkeit sowie der persönlichen und gegebenenfalls der wirtschaftlichen Verhältnisse des Versicherten unverzüglich der IV-Stelle anzuzeigen (<ref-law>). Für den Tatbestand der Meldepflichtverletzung ist ein schuldhaftes Fehlverhalten erforderlich, wobei nach ständiger Rechtsprechung bereits eine leichte Fahrlässigkeit genügt (<ref-ruling> E. 2a S. 218; Urteil 9C_294/2018 vom 28. November 2018 E. 5.2 mit weiteren Hinweisen).
3.
Das kantonale Gericht hat in der seit März 2008 bestehenden Anstellung resp. im deswegen seit 1. Januar 2009 zusätzlich erzielten Einkommen einen Revisionsgrund im Sinn von <ref-law> erblickt. Sodann hat es nach eingehender Beweiswürdigung dem SMAB-Gutachten vom 14. September 2017 Beweiskraft beigemessen. Gestützt darauf hat es für leidensangepasste Tätigkeiten eine Arbeitsfähigkeit von 100 % ab Januar 2009 resp. von 80 % ab September 2014 festgestellt. Für die Invaliditätsbemessung 2009 hat die Vorinstanz das Valideneinkommen auf Fr. 68'351.- und das Invalideneinkommen auf Fr. 59'979.- festgelegt, woraus eine Einschränkung von 12 % resultiert. Im Einkommensvergleich für das Jahr 2014 hat sie Vergleichseinkommen von Fr. 70'706.- resp. Fr. 53'524.- und somit einen Invaliditätsgrad von 24 % ermittelt. Bereits im Rückweisungsentscheid vom 28. Oktober 2016 hatte sie eine schuldhafte Meldepflichtverletzung durch den Versicherten bejaht, weil dieser das im März 2008 angetretene Arbeitsverhältnis erst mit dem bei der IV-Stelle am 17. September 2013 eingegangenen Revisionsfragebogen mitgeteilt habe. Folglich hat sie die rückwirkende Rentenaufhebung auf den 1. Januar 2009 bestätigt.
4.
4.1. Bei der Beurteilung der Arbeits (un) fähigkeit stützt sich die Verwaltung und im Beschwerdefall das Gericht auf Unterlagen, die von ärztlichen und gegebenenfalls auch anderen Fachleuten zur Verfügung zu stellen sind. Ärztliche Aufgabe ist es, den Gesundheitszustand zu beurteilen und dazu Stellung zu nehmen, in welchem Umfang und bezüglich welcher Tätigkeiten die versicherte Person arbeitsunfähig ist. Hinsichtlich des Beweiswertes eines Arztberichtes ist entscheidend, ob dieser für die streitigen Belange umfassend ist, auf allseitigen Untersuchungen beruht, auch die geklagten Beschwerden berücksichtigt, in Kenntnis der Vorakten (Anamnese) abgegeben worden ist, in der Beurteilung der medizinischen Zusammenhänge sowie der medizinischen Situation einleuchtet und ob die Schlussfolgerungen der Experten begründet sind (<ref-ruling> E. 5.1 S. 232; <ref-ruling> E. 3a S. 352 mit Hinweis).
4.2. Bei den gerichtlichen Feststellungen zum Gesundheitszustand und zur Arbeitsfähigkeit handelt es sich grundsätzlich um eine Tatfrage (<ref-ruling> E. 3.2 S. 397 ff.). Ebenso stellt die konkrete Beweiswürdigung eine Tatfrage dar. Dagegen sind die unvollständige Feststellung rechtserheblicher Tatsachen sowie die Missachtung des Untersuchungsgrundsatzes und der Anforderungen an die Beweiskraft ärztlicher Berichte und Gutachten Rechtsfragen (Urteile 8C_673/2016 vom 10. Januar 2017 E. 3.2 und 9C_899/2017 vom 9. Mai 2018 E. 2.1).
4.3.
4.3.1. Der Beschwerdeführer hält in Bezug auf ein Handekzem und einen Tinnitus fachärztliche Abklärungen für erforderlich. Die Vorinstanz hat im Zusammenhang mit dem Handekzem berücksichtigt, dass gewisse Tätigkeiten unzumutbar sind, und festgestellt, dass dieses dem Versicherten seit langer Zeit keine Probleme mehr bereite. Bezüglich des Tinnitus hat sie festgestellt, dass dieser bereits 2006 kompensiert und nicht behandlungsbedürftig gewesen sei und sich seither noch leicht verbessert habe. Dass diese Beweiswürdigung, die den Zeitraum vom Januar 2009 bis zum Februar 2015 betrifft, offensichtlich unrichtig (unhaltbar, willkürlich: <ref-ruling> E. 6.3 S. 375; <ref-ruling> E. 8.1 S. 153) sein soll, wird nicht substanziiert (vgl. <ref-law>) geltend gemacht und ergibt sich insbesondere nicht aus den vom Beschwerdeführer angerufenen Berichten behandelnder Ärzte (vgl. BGE <ref-ruling> E. 3b/cc S. 353) aus den Jahren 2000 resp. 2004 und 2006.
4.3.2. Sodann beruft sich der Beschwerdeführer auf die Einschätzungen seines behandelnden Psychiaters; die Gutachter hätten mit diesem keine Rücksprache genommen. Indessen unterliegt das Einholen fremdanamnestischer Auskünfte grundsätzlich der Fachkenntnis und dem Ermessensspielraum des Experten (Urteile 9C_804/2018 vom 23. Januar 2019 E. 2.2; 9C_275/2016 vom 19. August 2016 E. 4.3.2), und die SMAB-Gutachter berücksichtigten - nebst den Ergebnissen der eigenen Untersuchungen - u.a. diverse Berichte des Behandlers. Somit war auch nicht (allein) ausschlaggebend, dass keine (teil- oder voll-) stationäre Behandlung stattgefunden hatte. Die SMAB-Gutachter legten nachvollziehbar dar, weshalb sie ab 2009 eine gesundheitlich bedingte Einschränkung verneinten. Anhaltspunkte dafür, dass sie dabei die Standardindikatoren gemäss <ref-ruling> ungenügend berücksichtigt haben sollen, sind nicht ersichtlich, zumal ein strukturiertes Beweisverfahren dort entbehrlich bleibt, wo im Rahmen beweiswertiger fachärztlicher Berichte eine Arbeitsunfähigkeit in nachvollziehbar begründeter Weise verneint wird (vgl. <ref-ruling> E. 7.1 S. 429).
4.3.3. Weiter macht der Beschwerdeführer geltend, die Kopfschmerzen und Migräneattacken seien ungenügend berücksichtigt worden. Die SMAB-Experten erkannten eine psychogene Überlagerung der Kopfschmerzen, die sie in die Prüfung der Indikatoren gemäss <ref-ruling> einbezogen. Zudem schlossen sie auf jeweils vorübergehende Arbeitsunfähigkeit bei "vier bis fünf wahrscheinlichen Migräneattacken im Monat", wobei diese nach Angaben des Versicherten zwei bis fünf Stunden anhalten und recht gut auf Medikamente und Bettruhe ansprechen. Das kantonale Gericht hat den vom Versicherten ab Sommer 2018 selbstständig geführten und im vorinstanzlichen Verfahren eingereichten Kopfwehkalender "aus naheliegenden Gründen" nicht als geeignet erachtet, den Sachverhalt zu objektivieren. Dem ist beizupflichten, zumal (nachträgliche) subjektive Angaben über das Auftreten von Kopfschmerz allein nicht auf Arbeitsunfähigkeit schliessen lassen und das genannte Dokument auch keine Information über die Schmerzintensität, die jeweilige Behandlung oder deren Erfolg enthält. Die Vorinstanz hat nicht offensichtlich unrichtig festgestellt, Gesprächstherapie, Medikation und Physiotherapie hätten zu einer Besserung des Gesundheitszustandes geführt, und als "Therapiereserve" sei die Intensivierung der psychiatrischen Behandlung und eine Optimierung der Migräne-Medikation zu nennen.
4.4. Eine jeweils ganztägige Arbeitsunfähigkeit für vier bis fünf Migräneattacken pro Monat (vgl. E. 4.3.3) ergibt eine durchschnittliche Einschränkung von rund 15 %. Ob die SMAB-Gutachter und die Vorinstanz eine solche trotz der vorübergehenden Natur der Attacken hätten berücksichtigen müssen (vgl. Urteil 8C_179/2018 vom 22. Mai 2018 E. 4.2), braucht nicht beantwortet zu werden. Ebenso kann offenbleiben, ob die im September 2014 eingetretene und vom kantonalen Gericht in Anschlag gebrachte Verschlechterung des Gesundheitszustandes, welche die SMAB-Experten einzig als Reaktion auf die Einstellung der Rente und die angekündigte Rückforderung erklärten, invalidenversicherungsrechtlich überhaupt relevant ist (vgl. Urteil 9C_740/2018 vom 7. Mai 2019 E. 5.2.1 mit Hinweisen).
Auch wenn zu Gunsten des Versicherten sowohl der ab September 2014 verschlechterte Gesundheitszustand als auch infolge der Migräne eine (zusätzliche) Einschränkung der Arbeitsfähigkeit um 15 % berücksichtigt wird, ändert sich nichts am Ausgang des Verfahrens (vgl. E. 5.3).
4.5. Nach dem Gesagten hat das kantonale Gericht kein Recht verletzt, indem es auf das SMAB-Gutachten abgestellt und auf weitere medizinische Abklärungen verzichtet hat. Die vorinstanzliche Beweiswürdigung und die Feststellungen betreffend die Arbeitsfähigkeit (E. 3) sind auch nicht offensichtlich unrichtig; sie bleiben - zumindest im soeben dargelegten Umfang (E. 4.4. Abs. 2) - für das Bundesgericht verbindlich (E. 1.3).
5.
5.1. Weiter bemängelt der Beschwerdeführer die Invaliditätsbemessung. Für das Invalideneinkommen beruft er sich auf den Eintritt des Gesundheitsschadens, weshalb er an das 1995 oder 1998 erzielte Einkommen anknüpfen will; zudem sei eine überdurchschnittliche Einkommenssteigerung, zumindest aber die Nominallohnentwicklung zu berücksichtigen. Sodann hält er dafür, beim Invalideneinkommen die Einschränkungen infolge der Migräneattacken zu berücksichtigen.
5.2.
5.2.1. Für die Ermittlung des Valideneinkommens ist entscheidend, was der Versicherte im Zeitpunkt der Invaliditätsbemessung (hier 2009 resp. 2014) überwiegend wahrscheinlich als Gesunder tatsächlich verdient hätte. Dabei wird in der Regel am zuletzt erzielten, nötigenfalls der Teuerung und der realen Einkommensentwicklung angepassten Verdienst angeknüpft, da es der Erfahrung entspricht, dass die bisherige Tätigkeit ohne Gesundheitsschaden fortgesetzt worden wäre. Ausnahmen müssen mit überwiegender Wahrscheinlichkeit erstellt sein (<ref-ruling> E. 3.3.2 S. 30; <ref-ruling> E. 4.1 S. 325; SVR 2009 IV Nr. 28 S. 79, 8C_576/2008 E. 6.2; Urteil 9C_63/2018 vom 9. November 2018 E. 4.4.2).
5.2.2. Die Vorinstanz hat für die Festsetzung des Valideneinkommens auf ihren Rückweisungsentscheid vom 28. Oktober 2016 verwiesen. In dessen E. 4.4.4 stellte sie - unbestritten und verbindlich (E. 1.3) - fest, dass der Versicherte zwischen 1993 und 1998 schwankende Einkommen erzielt habe. Seine Arbeitgeberin Conrad & Würmli AG sei Ende 1996 Konkurs gegangen; anschliessend habe er bei der damals neu gegründeten Herzog Umbauten AG gearbeitet. Mitte 1998 sei das Handekzem, das die weitere Tätigkeit als Maurer verunmöglicht hatte, ausgebrochen.
Die Vermutung, dass ohne Gesundheitsschaden die Tätigkeit bei der konkursiten Arbeitgeberin fortgeführt worden wäre, lässt sich nicht halten; auf das 1995 erzielte Einkommen kann daher nicht abgestellt werden. Indessen kann das Einkommen des Jahres 1998, laut Auszug aus dem Individuellen Konto Fr. 62'311.-, herangezogen werden. Angepasst an die Nominallohnentwicklung ergibt sich ein Valideneinkommen von Fr. 72'212.- (2009) resp. Fr. 74'761.- (2014). Ein konkreter Anhaltspunkt für eine überdurchschnittliche Einkommenssteigerung, etwa eine erfolgte Anmeldung für eine bestimmte Weiterbildung, wird nicht geltend gemacht und ist auch nicht ersichtlich.
5.3. Wird das von der Vorinstanz berücksichtigte Invalideneinkommen um 15 % reduziert (vgl. E. 4.4), beträgt es Fr. 50'982.- (2009) resp. Fr. 45'495.- (2014). Daraus resultiert ein Invaliditätsgrad von 29 % (2009) resp. 39 % (2014). Damit ist ein Rentenanspruch ausgeschlossen resp. die Rentenaufhebung rechtens (E. 2.1 und 2.2).
6.
6.1. Schliesslich hält der Beschwerdeführer die Rückwirkung der Rentenaufhebung für unzulässig, weil er guten Glaubens gewesen sei, als er die Einkommenssteigerung nicht gemeldet habe. Er sei davon ausgegangen, dass mit der Anpassung des Valideneinkommens der Rentenanspruch unverändert bleibe.
6.2. Die Vorinstanz hat im Rückweisungsentscheid vom 28. Oktober 2016 (verbindlich; E. 1.3) festgestellt, dass der Beschwerdeführer 2008 noch Fr. 28'004.- verdient habe und er dieses Einkommen 2009 auf Fr. 42'244.- habe steigern können. In der Rentenverfügung und der Revisionsmitteilung sei er explizit auf seine Meldepflicht für Veränderungen in den Einkommensverhältnissen aufmerksam gemacht worden. Unter diesen Umständen hat die Vorinstanz kein Recht verletzt, wenn sie das Verhalten des Versicherten als (zumindest) grobfahrlässig wertete (vgl. E. 2.3). Die Beschwerde ist auch in diesem Punkt unbegründet.
7.
Dem Ausgang des Verfahrens entsprechend hat der Beschwerdeführer die Gerichtskosten zu tragen (<ref-law>).

Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird abgewiesen.
2.
Die Gerichtskosten von Fr. 800.- werden dem Beschwerdeführer auferlegt.
3.
Dieses Urteil wird den Parteien, dem Sozialversicherungsgericht des Kantons Zürich und dem Bundesamt für Sozialversicherungen schriftlich mitgeteilt.
Luzern, 22. August 2019
Im Namen der II. sozialrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Die Präsidentin: Pfiffner
Die Gerichtsschreiberin: Dormann