When not spending my time writing on this site, my real job is that of a medical sleep technologist (yes, an odd but fun career), so lets just say I have an unhealthy interest in the science of slumber.
Napping, while essential for healthy cognitive performance, can be done rightly or wrongly. In short, we have about 90-minute sleep cycles (varying with age), consisting of numerous stages of sleep N1, N2, N3 and REM. Waking up between the sleep cycles leaves you feeling alert and awake, while waking someone up in REM or N3 can be jarring--hence why it's avoided during sleep studies. In real life though, it's hard to know what stage of sleep you're in since no one is monitoring your EEGs (brain waves). A quick rule of thumb though is nap for 90-minute increments, plus add on X-minutes to fall asleep. While not perfect, it'll put you in the ballpark of a healthy, refreshing nap.
sleepPhaseAlarm is a Mango/7.5 app that basically calculates this for you and sets an alarm. With a simple interface, you tell it you want to go to sleep now (and then pick what time-frame works for you) or you set the time you need to get up (and it tells you what time to go to bed). The app is well designed and since it's Mangofied, the alarm is set and runs in the background (a true "set it and forget it" app). We gave it a quick spin and have to recommend it for those frequently needing catnaps during the day or a healthy night of full sleep.
There are two version: a free, fully functional trial (no settings) and $0.99, which allows you to set amount of time it takes you to fall asleep and choose from five-different alarms. You can pick it up here in the Marketplace (Zune) or the Web Marketplace here.