Full disclosure: I’m the developer behind Noise Blocker, an app I built to help tackle unwanted noises on VoIP calls.
Noise Blocker is a customizable noise gate that allows you to record a sample of any kind of noise (i.e background noise, typing on your keyboard, mouse clicks, etc) and block it accordingly.

If you’d like to see it in action, here is a ~1 minute video showing how to set it up to block background and keyboard noises.
The app is fairly minimalistic but comes with a few configurable settings (with sensible defaults) to tweak and fine-tune it for your audio setup.

Those include...
Threshold - The input sensitivity (i.e decibel level) needed on the filtered audio before the noise gate allows audio through. It's not unusual for this to be set to 0.
Noise Reduction - Controls how aggressively to filter the incoming audio. If you find your voice is being cut out, try lowering this setting very gradually, or if you find noises are still coming through, try increasing this setting very gradually.
Release Delay - How long (in milliseconds) the microphone should stay on after the filtered audio levels have dropped below the threshold.
It works system-wide by piping audio from your hardware microphone through to its own virtual microphone device (or alternatively you can use VB-Cable) which you just need to select in whatever application you are using (i.e Skype, Discord, TeamSpeak, etc).
Example: Selecting the Virtual Microphone in Discord.

It is a paid solution, but it is free to try (1-hour usage limit that resets every 24 hours) so you can test it and ensure it works with your audio setup (everyone's is different).