For good roasters, see this thread.
List of our favorite RoastersAs has been said, you need good, fresh beans to make good espresso.
Beans should be around 4-15 days old. The roasters from the list above will ship the day of, or day after roasting, so you should get the beans around when they are ready for use. Too old and they get stale, you can freeze beans if you buy more then you can use in that time.
Then, get a good grinder. Baratza makes nice grinders, but you need to be at their higher end models to get something espresso capable.
BTW, you can learn a TON about espresso, grinders and machines by reading the FAQ's here.
Randy