How does multi-factor authentication (MFA) improve security, and what are the best practices for implementing it?

Multi-factor authentication (MFA) is known to significantly improve security, but what are some best practices when implementing it? How do you balance security with user convenience, and what factors do you consider when choosing between different methods (e.g., SMS, app-based, hardware tokens)?