Cover corn husk with hot water, soak for 30 minutes, rinse and wipe dry. Meanwhile, Saute onions and garlic in 3 tablespoons oil, set aside. Combine ingredients for Masa, using the remaining oil. Combine ingredients for salsa (including sautéed onion and garlic) in a blender until smooth. Add one cup of salsa to the Masa mixture.
Vegetable stuffing: Add vegetables to remaining salsa in a pan, sauté until tender Chicken and Pork Stuffing: Place meat in separate pans, add soy sauce, sauté in oil until done.
Use a rubber spatula to spread about 1/2 cup masa onto the middle of the corn husk; covering about 2/3 of the husk with masa about 1 inch thick. Leave about 2 inches at the bottom of the hust clear and 3 inches clear at the top. The widest part of the husk should be at the bottom. Once you apply the masa, top with 2 tablespoons of vegetable filling, add chicken or pork filling as desired.
Starting with the wide end, gently fold the left side and overlap with the right side. Fold up toward the pointed top to make a little package. Lay each tamale fold side down. You will have an open end on the top.
Add water to the bottom of a steamer or large pot that has a metal colander inside. The water should come just under the steamer. Cover the pot with a lid and bring water to a boil. Place tamales on the steamer open side up. Steam for 30 minutes or until masa firms up and the filling is piping hot. Remove tamales with tongs. Serve plain or with salsa.