I found this article:
http://weblogs.redeyechicago.com/iphoneblog/2008/07/colors-on-your.html
At the bottom in the comments section is the solution: When you sync from your Mac to MobileMe, it does show the correct colors, but the iPhone does not. So, go to MobileMe, and go to each calendar, and pick the "list of calendar actions" button (it is to the right of the Month drop down at the top of each calendar you select).
Select calendar info, and you'll see a screen which shows your calendar name and the correct color. Just click "ok" to save the color one more time, and it'll show up correct on yoru iphone.
One thing to note - when I synced with my Mac it saw this as a conflict between the two, so I had to pick either Mac or MobileMe, even though they both showed the same color.
Now my iphone, mobileme, and Mac all have the same colors without have to sync in any particular order.
Hope this helps!