There is nothing special about MLEs here, since what you're asking really applies to any optimisation problem. In this broader sense, you want to know what methods are desirable to maximise/minimise a function.
Applying standard calculus methods for optimisation, you should be able to get an equation for the critical points for the function, and the second-order-conditions for optimisation, and this will usually allow you to find the maximising point. Often the maximising point is a critical-point, and in this case, optimisation involves finding the solution(s) to the critical point equation. In some problems the critical point has an explicit closed-form solution, as in the example in your question. In other problems there is no closed-form solution to the critical point equation, and in this case it is usual to solve this equation via iterative numerical methods (i.e., start at some arbitrary point, and then move closer and closer to the critical point via some iterative algorithm).
The best way to distinguish these cases is simply to try to optimise algebraically, and see if this leads you to an explicit solution, or a case that requires numerical methods. If it is possible to get an explicit closed-form solution for the maximising value then you are finished, and no numerical methods are required. If you require numerical methods to find the solution to the critical point equation, then you can either form this iterative process algebraically, or rely on a package such as bbmle
in R
. At the end of the day, optimisation requires familiarity with calculus; with experience you will be able to anticipate which problems give closed-form solutions and which will require iterative methods.