As we belong to a developing country, the agricultural importance is a known criterion. Majority of the Indians depend on agriculture for their basic living. It also serves as the backbone of the Indian economy. Therefore this sector should be considered important and taken care of. Diseases affecting the plants and pest are the two major threats of agriculture production. Naked eye observation followed by the addition of chemical fertilizers is the traditional method adopted by most of the farmers to avoid plant diseases. But the main limitation to this method is that it works only in the case of small scale farming. In order to tackle this issue many automatic plant disease detection systems have been developed from the early 70s. This paper is intended to survey some of the existing works in plant disease recognition that include various procedures, materials and approaches. They use different machine learning algorithms, image processing techniques and deep learning methods for disease detection. This paper also compares and suggests novel methods to recognize and classify the various kinds of infections affecting agricultural plants.