In the Sleeping Car you always tip at the end of the trip. A good rule of thumb is $5 per night, per person. If the service is more than expected tip more, if the service is less than satisfactory tip less, or if the attendant does nothing at all tip none.
In the Dining Car you want to leave $2-3 per meal, per person, even is you are not actually paying for the meal. If you want to go with the 15-20% rule against the prices on the menu, that's fine too. Don't feel inclined to leave a tip if the crew did not perform to your expectations.
In the Lounge Car I always dump my loose change into a tip cup the attendant has sitting out on the counter. At the end of the trip I may leave $1-2 extra in the tip cup for exceeded service.
You should also tip Red Cap's at stations like Chicago if they offer to help. $1 per bag should be fine. You need not tip product line managers, conductors, engineers, or station agents.
Not to scare you away, but unlike the airliners, cruises, and hotels, Amtrak's service can vary greatly between trains and crews. Some are top notch, others are just rotten apples. If you run into these rotten apples, try to ignore them, don't leave a tip, and write to customer service with the name of that employee (action against employees has been known to take place when passengers write to Amtrak). Anyway, hopefully this helps.