What you’re asking for is part of core WordPress functionality. Simply assign the appropriate user role to new users. For example, the Contributor user role can draft – but not publish – new posts. Such posts then require someone with publish privileges to approve/publish them.
To set the default role for new users, go to Dashboard -> Settings -> General
and set the New User Default Role setting.