T.N.
I actually think 21 is a little young to start getting anxious to have him leave the nest. Especially if he's in school. I lived at home while I was in school and will encourage my children to do the same, because it helped me save instead of having to take out student loans. Now, if you feel he is being irresponsible, then that is a different story. If you feel he needs to help out more around the house, give him more responsibility, like helping cook dinner or whatever you feel is fair. Be firm that if he is going to continue to live in your home, he needs to meet some set requirements (hold down a job, pay for his own stuff, be in charge of XYZ around the house, follow certain rules, or whatever is important to you). But if you feel like he is being responsible, I would personally let him stay. Make him share a room with someone to make room for the baby if that's what you want and he'll just have to realize that is a part of living there and it is his choice. It is your house after all, and you need to make it comfortable for you. He is at an age when big life choices are being made and you want to be as big an influence on him as possible, so this might be a blessing in the long run.
By the way, I lived at home (enrolled full-time in college) until I got married and I was extremely responsible even though I had never lived on my own before. In fact, I think I had an easier time adjusting than my husband did even though he was 6 years older and had lived with roommates because I shared a room with my sister my whole life and my husband was an only child. The real world wasn't a shock for me because my mom had always allowed and enforced real world consequences for our choices.