The basic tenet is sound, the difference is experience. Feedback occurs when a particularly frequency of a sound is loud enough out of a sound source (such as a monitor) that it is picked up by a microphone that is feeding that sound source. This results in a loop that increases that frequency and turns it in to a constant tone. To prevent this, we must somehow break the loop by reducing the amount of sound that the microphone hears from the sound source such that the sound source doesn't make the same sound louder than the previous time.
Your gains should never be higher than you need them. The purpose of a gain is to amplify the signal to ensure that you have sufficient signal strength to move through the board without inducing a high noise floor in the signal. It has an ideal value that an experienced sound tech will set it to based on input levels.
With an inexperienced technician however, it is common to turn the gain too high. Additionally, monitors or mains may be too high for the channel. The gain is a quick and easy catch all that will fix the problem in the case where the signal level itself was set too high by a newer tech with less experience to tweak things carefully.
As you gain more experience though, you start setting gains based on the needed signal level. In these cases, you don't want to cut gains because the point of the gain has nothing to do with the output of your speakers. Instead, you want to focus on localizing and correcting the problem.
So now that we are past gain, there is a second problem that can occur, the signal can flat out be too loud in a monitor (or even worse, the main) resulting in a feedback loop. An engineer that isn't experienced with doing monitor mixes may have the monitors louder than they need to (for example, by mixing additively rather than subtractively.) This can result in unneeded feedback, but again, as the tech develops their experience, they will get better at only pushing monitors as loud as they need to.
Given that an experienced tech will already have the gain and monitor levels set where they NEED to be, we are left without the option of reducing them further. The gain and monitor levels, by default, should be at the lowest possible levels that maintain the needed strength, both from a signal quality and from a hearing safety perspective.
If you are already at your minimum level and are getting feedback, then one of two things must change. Either the mic or sound source needs to be moved to prevent the problem (or the type of mic changed), or the EQ of the channel or sound source must be altered to prevent the problematic feedback.
Provided it won't interfere with the presentation, the best bet is likely going to be to actually EQ the sound source that is causing the interference (provided it isn't actually an error in the channel EQ) as this will avoid impacting the sound of the channel outside of the problem area. (ie, the sound in the mains will be proper, even if it is off a bit in the monitor.) In some cases, this may not hold true though as the impact of that frequency being altered on other channels in the monitor may not be acceptable. Additionally, in a two board setup (where a dedicated monitor engineer has monitor specific EQs), then the channel EQ is the best place to go straight to.
Altering the EQ, whether on the channel or for the sound source, results in the particular frequency that was being looped to be reduced and the feedback cycle broken with a minimum amount of impact on the overall quality.