Melt the butter in a heavy skillet over medium heat. Add the flour and whisk until all lumps are gone. Cook, stirring, for 1 minute. Add the milk, all at once, and whisk well ensuring no lumps. Switch to a spoon and cook, stirring constantly, until the sauce thickens. Whisk in the salt and tomato paste. Cook for another minute.
Preheat the broiler to high.
Place the artichoke heart bottoms in a baking dish. Cut the ham into strips and place a quarter of the ham in each artichoke heart bottom. Top with a pouched egg. Spoon the sauce over the eggs, sprinkle with Parmesan cheese and broil for 2- 3 minutes. Serve immediately.