debk is a stupendous cook on just about anything she puts her hands on (so I've heard), but I like to keep it simple and I'm pretty much a cook that does things by sight rather than weighing/measuring.
But here goes:
Boil up a lb. or so of macaroni to al dente. Drain and drizzle a bit of olive oil to keep the mac from sticking.
Get a lb. or so of your favorite cheddar and shred it using a box shredder. Forget about that pre-shredded stuff.
In a saucepan, melt a half-stick of butter. Don't even THINK of using margarine. Sweat about a half-cup of onion, making sure to season the onion with salt and pepper, and even a bit of cayenne.
Add about a tablespoon of flour -- not too much. Stir to make a roux, but don't cook to brown the roux.
Add about two cups of milk, half & half, whatever. Bring up to temp slowly, stirring OFTEN. Bring up to a slow boil, and allow to cool for about 10 minutes. Adjust seasoning, keeping the salt down since cheese has some salt to it.
A little at a time, add the shredded cheese to the milk mixture. If necessary, heat slowly but don't overheat. That'll lump up the cheese and make your day unhappy.
When all the cheese is melted and things are sufficiently gooey, add the mac to the cheese mixture and stir.
You can eat it as is, or put into an ovenproof dish, sprinkle some bread crumb/butter mixture on top and bake at 350 degrees for 20 minutes or so.