Because of India's size, its climate depends not only on the time of year, but also the location. In general, temperatures tend to be cooler in the north, especially between September and March. The south is coolest between November to January. In June, winds and warm surface currents begin to move northwards and westwards, heading out of the Indian Ocean and into the Arabian Gulf. This creates a phenomenon known as the south-west monsoon, and it brings heavy rains to the west coast. Between October and December, a similar climatic pattern called the north-east monsoon appears in the Bay of Bengal, bringing rains to the east coast. In addition to the two monsoons, there are two other seasons, spring and autumn.
For most of the country, November-March is (by far) the best time to visit. During those months, temperatures range from 40-60 F/5-15 C in the north to 65-85 F/19-30 C in the south. March-June is dry and exceedingly hot (85-110 F/30-44 C), and June-October is monsoon time (20-80 in/50-200 cm of rain will fall in one season). The best times to visit Darjeeling and other mountain areas are March, April, October and November. Obviously, India's less crowded with tourists during the off-seasons, but it can be so hot in the spring and summer that it's not possible to stay outdoors for long periods. During the rainy period, the monsoon washes away many roads in game parks and rural areas (southeastern India has a second rainy period during the cool season).
If you're going to India during spring or summer, you'll want to stick to the hill stations (60-70 F/ 15-21 C). During the winter, avoid Kashmir (30-45 F/0-7 C), unless you're going skiing, and Ladakh -- one of the coldest inhabited regions on Earth.