Here's some great gardening advice from Aquarium Lead Horticulturist Christine Bock:
Attracting butterflies to your yard can be so rewarding! To attract butterflies to your yard you must provide flowers that have nectar and host plants for the butterflies to lay their eggs upon.
Although there are many plants that have nectar, butterflies are rather specific about the plants on which they lay their eggs. They choose plants that the hatched caterpillars will eat as they grow in their life cycle.
It is easy to add the nectar plants but adding those host plants will give the butterflies a place to complete their life cycle and you will have butterflies in all stages. Here are some ideas for plants to put in your yard:
Natives - Phlox, azaleas, thistles, fruit trees, zinnas, ironweed, goldenrod, coneflower, buttonbush, asters, blazing star, red clover, monarda, jewelweed
Nursery - petunias, verbena, lilac, phlox, cosmos, lantana, butterfly bush (buddlea), morning glories, gaillardia
Natives - butterfly weed (Asclepias), Pipevine, Queen Annes lace(naturalized), chickory (naturalized), nettles, white clover, red clover, violets, sassafras, spicebush, tulip poplar, ash, wild cherry, elm, hackberry, coreopsis, plantain, ruellia, some grasses ( uncut grass with their seeds)
Nursery - dill, fennel, parsley, alfalfa
Butterflies will also appreciate a shallow bird bath for rotting fruit or shallow puddles of water.