I'd start by getting rid of the snacks...since you work from home, I'd wait till the weekend just in case it makes him fussy between meals. I'd up the protein content in what he's eating, so that even if he doesn't eat much of it he's still getting enough of what he needs. Does he eat what you eat when you eat? It sounds like you're feeding him alone in the kitchen rather than the whole family sitting at the dining room table together and interacting. Children model what their parents do, so if he sits with you, he'll eventually want to copy you. My 26 month old has always eaten whatever we have, and I know he'd be bored silly by the same foods over and over, plus he really dislikes bland things.
As an example, here's what he ate yesterday:
9:00 breakfast: hard-boiled eggs and toast, OJ
12:00 lunch: turkey sandwich with lettuce and tomato, pretzels,
4:00 snack(older siblings home from school): cheese and crackers (he likes sharp cheddar the best)
6:30 dinner: penne with sausage and vodka sauce, garlic bread, salad and milk.
For dessert, we had chopped up strawberries and apples.
I think that he eats a reasonable amount of widely varied foods. Some things he likes, some things not so much. By feeding your son the same foods over and over, if that's actually what you're doing, then you're running a good chance of creating a picky eater who won't try new things.
Oh, and I'd definitely replace the milk with water...milk is filling and, combined with his snacks, not allowing him to get hungry enough to really eat at mealtimes. Also, I might have misunderstood, but are you still spoon-feeding him? He's more than old enough to use a fork and spoon and feed himself, and that might make him more interested in the whole process.
Good luck!