Go to any website that sells program stock and look at their samples. You'll see a lot of variety, and that will get you started.
Here's one layout tip that I like.
Let's say I have a bunch of names and their places in the wedding party.
(This could be corporate employees and their titles, or clergy and home parishes. This trick works in many situations, not just weddings.)
Imagine you have a column of the names and a column of the titles. The name column is on the left, the title column is on the right.
Now, right justify the column on the left and left justify the column on the right. Do this with tabs, so you have some white space in between the columns.
This avoids leading periods. (Joe Blow.............Groom)
Leading periods are difficult when you have people with different length names. But, if you use the right/left justification technique, the space between the end of each person's name and their title is always exactly equal. The eye does not have to follow a long line of periods between the end of a short name and the title.
George Stephanopoulous.....Best Man
--------------------------Joe Blow---Groom ---George Stephanopoulous---Best Man
I'm hoping this look OK once the message is posted, and I hope you get the idea.
Added later: It did not look OK in the posted message. The editor ate up the hard spaces I added. I put in dashes, but colored the dashes white to make them disappear. This "should" work.
Get out your word processor, learn how to set tabs and change justification on tabs.
The right/left justification system almost always looks nice.
One thing I like about these samples is that because they're 2 pages, you can choose to do either a full sheet of paper with a cover and have the meat of the program on the inside, or you could do a half-sheet of card stock (which is what I did) and have info on both sides. You wouldn't have a pretty cover that way, but if you don't care about that, then there you go.