Break cauliflower into florets and lightly steam in water and salt for about 10 minutes. Drain and in the same pan saute onion and garlic in one tablespoon of the butter until translucent. Use the rest of the butter to grease a glass or ceramic baking dish.
Mix onion and cauliflower together with salt, pepper and marjoram and add to greased baking dish. Mix beaten egg, half and half, cream and sour cream together until well blended. Top with ham and cheese and then pour the egg and sour cream mixture over the entire dish.
Bake at 350 degrees for about 30 minutes or until browning on top.