Unless the service is really bad (and then I tip very little or nothing), I tip 20% of what a meal would cost if I was paying cash. That's what I most often pay in a non-Amtrak restaurant. Why should dining car servers get less unless they did something to warrant less?
As for sleeping car attendants, I generally tip $15/night if they did their job; $20/night if they went beyond the call...
When I used to travel coach long distance, my tip was usually $5-$7 per day. Today, when I travel coach (typically a day train) it's Business Class if available, and I tip the SA $5.
In May, I'm travelling on #1 Toronto>Vancouver in a sleeper. I'm wondering if I can tip in US dollars, or do I need to get Canadian dollars? For expenses off-train I'll be using a credit card (US dollars) to pay for things, but you can't very well put (just) a tip on a CC, can you?.