Is there any way I can hide a list item that is posted to a custom list until it's approved by a content owner? If so how can I do that?
SharePoint offers this functionality OOTB (by default). It's located in the List Settings for the list, under the "Versioning Settings" category. Here's what the setting looks like:
However, if you don't want this feature enabled for all items in the list, and ONLY want approval required for specific items (based on criteria) or items created by the workflow, then that becomes a great deal more difficult. By default, there is no way to set the approval state on an item via a SharePoint Designer workflow, although you CAN kick off a separate approval workflow.
If the latter functionality is what you're looking for, you'll probably need to create your own workflow in Visual Studio. A custom workflow can set the approval status of an item based on whatever conditions you like, but obviously it's a lot more work and requires coding.