What are the key differences between monolithic and microservices architectures for web apps?

As more apps move to microservices, developers often debate whether it’s the right choice. What challenges have you encountered when transitioning from a monolithic to microservices architecture? How do you decide which architecture is best for a particular project?