Strip rosemary leaves from branches, leaving 2 inches of leaves at tip of stems; chop leaves to measure 2 tablespoons.
Whisk together chopped rosemary, garlic, and next 5 ingredients in a small bowl.
Alternately thread fish, potato, tomatoes, and onion onto rosemary skewers. Place in a 13- by 9-inch baking dish, and add marinade. Turn skewers gently in marinade to coat. Let stand 15 to 20 minutes.
Grill, covered with lid, over medium-high heat (350° to 400°) 6 minutes on one side. Turn carefully, and grill 6 additional minutes.