I echo the other posters - all good ideas and suggestions. Definitely go with a multivitamin - it will make you feel better, its good for them and they think its candy. = ) My 4-yr old rushes to gobble hers up every evening. We used Flinstones multi - they have a formula for under 4 year olds that is smaller - otherwise check the labels carefully, many of the kids vitamins are formulated for 4 year olds and up, and recommend splitting in half for younger kids.
First - you did the right thing. If you cave in on giving her the cookie, she will remember it and always keep trying to get it again without eating dinner. Be strong, it is hard I know, but as the other poster said, when she is hungry she will eat what you give her. You should give her what you and the rest of the family are eating, and only that. If she won't eat and you let her down and she wants something later, offer her the same stuff you had for dinner (you can always make a plate from the leftovers.)
Now, unless your doctor has said she is underweight and you desperately need to get her to gain weight, in which case I would ask the doctor for tips, keep telling yourself: "She will eat when she is hungry and she will not starve to death in the meantime." Really! This mantra from another mother saved my sanity the first year she was eating real food!
Welcome to the neverending battle - getting kids to eat. Mine loves veggies and hates meat, so my worry is always getting enough protein into her (thank goodness for peanut butter!) Peanut butter on crackers (Triscuits or saltines are sturdy) with raisins pressed into the peanut butter - I think she lived on it for about a year! and she still has it for lunch sometimes. Try things like yogurt (mine thinks of it as a treat, since it is sweet), cottage cheese, peanut butter, baby tomatoes, cucumber slices, carrot sticks.
Sound effects (crunch, yum, etc.) and reverse psychology definitely work on kids this little - one poster recommended 'taking' their food to eat, this works, but better is the 'don't eat MY *****, don't you eat it!' They will fall over themselves to gobble it up! I've seen my brother in law do this with a table full of kids and them all go crazy to eat 'his' food. Make appropriate noises and stuff when they eat each bite. "where did my **** go? what? well don't you eat any more of it!" and so on. My daughter sometimes says to me "tell me not to eat your food mommy" - she knows its a joke, but still enjoys the game. = )
Another thing to try is from some of the kid recipe books (and online sites) - making cute stuff from food to get them to eat it.
Whatever works for the two of you - good luck! Just keep repeating the mantra and you'll make it through!