i just got back from about 4 months in india, it's a beautiful place , possibly the strangest country in the world but it takes some getting used to. in 3 or 4 weeks i would say it is better to see the south - it is far more relaxed, nicer weather, better food and generally speaking the people have a far higher standard of living. however i would advise against the advise given to you by siphen - goa/hampi/mamallapuram/pondicherry are all tourist places - u will not see india in these places (for the record anyone who has been to goa and goa alone has NOT been to idia, goa is not india). the best way to see india is to get on a bus and get off when u see something interesting -don't worry about hotels, in the villages people fight over who gets to put u up for the night.
First of all, congrats on going to India. It's an unreal experience. I spent 4 weeks in india and travelled to both the North and the South. 3 weeks would be too tight I think to see both. I cut down on my travel time by flying from the north to the south.
Like the other posters have said, the north and south are like two completely different worlds. If you want to experience beaches, palm trees, laid back villages, beautiful rivers, mountains, fields of tea and the best/cheapest seafood, go to the south. If you want classic architecture, crazy sights and sounds, dusty roads, crowds, challenges, colours and culture shock, go North.
You can do Delhi/Jaipur/Agra easily in the north. Jaipur is awesome and something to be seen/experienced. It gives you a feel for classic India. And the Palace of the Winds is beautiful. Agra was filthy (pollution), but the Taj Mahal is worth a visit. No picture can capture it.
If you go to the south, definately take a backwater cruise in Kerala. It's my TOP experience of any I have ever had. Lounging on a large rice boat with a private cook...waving to people on the sides of the riverbanks...seeing them hanging clothes or fetching water..dropping anchor for the night on a lake while listening to the distant sound of people singing at a temple.
My experience of India can be found here http://www.subsidezine.de/NdiaD00.htm
Have a great trip!
I personally think that South India is the best place to visit. It is very peaceful part of India.