I want to allow users to add values to a picklist if the value they need isn’t available. They shouldn’t need admin abilities to do this, just an “Add New” when the picklist dropdown appears.
Unless you have a custom picklist, you will probably need to use the Salesforce Metadata APIs.
If you use a custom object to provide your picklist values, you can add a button to the page that opens a popup where you can add new records to that custom object. Then when that popup is saved, the new record value can be injected back into the field you were working on. I use this on a new task page, allowing users to add new contacts or accounts. The same construct could be done for picklists.
I was thinking same but wasn’t quite sure how that has changed in '19