In agriculture, crops are severely affected by illnesses, which reduce their production every year. The detection of plant diseases during their initial stages is critical and thus needs to be addressed. Researchers have been making significant progress in the development of automatic plant disease recognition techniques through the utilization of machine learning (ML), image processing, and deep learning (DL). This study analyses the recent advancements made by researchers in the field of ML techniques for identifying plant diseases. This study also examines various methods used by researchers to produce ML solutions, such as image preprocessing, segmentation, and feature extraction. This study highlights the challenges encountered while creating plant disease identification systems, such as small datasets, image capture conditions, and the generalizability of the models, and discusses possible solutions to cater to these problems. Still, the development of a solution that automatically detects various plant diseases for various plant species remains a big challenge. To address these challenges, there is a need to create a system that is trained on an extensive dataset that contains images of various types of diseases a plant can suffer from, and plant images should be taken at various stages of the disease's development. This study further presents an analysis of various methods used at different stages of plant disease identification.