To mitigate the farmer poverty and income inequality, many developing countries have introduced subsidy schemes to improve the incomes of farmers. Two commonly observed schemes are the input-based subsidies, which aim to reduce the input purchasing costs of farmers, and the output-based subsidies, which aim to lower farmers' output processing costs. However, the implications of these types of subsidies for farmers' welfare, production efficiency, income inequality, and consumer surplus remain unclear, especially when farmers are heterogeneous in their yield rates. In this paper, we develop a stylized model that captures the yield heterogeneity across farmers who are price takers, in which the government first determines the subsidy scheme and the corresponding subsidy level. Our analysis shows that the two schemes have quite different effects. First, we show that although both types of subsidies can reduce the aggregate income inequality in terms of the Gini coefficient, the input-based subsidy scheme can narrow the income gap between farmers under mild conditions, whereas the output-based scheme always widens this gap. Second, we show that low-yield farmers prefer input-based subsidies, while high-yield farmers prefer output-based subsidies. Lastly, we find that the output-based subsidy scheme outperforms the input-based subsidy scheme in terms of the total farmer income and farmer productivity, while the input-based subsidy scheme is more effective in reducing income inequality and increasing the consumer surplus.