Windows Phone 7 Alarm
You can do this with the set of features introduced in Windows Phone 7.1 SDK (Mango). Following features will enable you to develop this application:
1- Background agents: You will need to run a piece of logic every couple of minutes to check if the alarm is due or not.
Scheduled Tasks Overview for Windows Phone
2- Notification: You will need to notify user about by showing a message on the phone and possibly playing a sound:
search for "Toast Notification Sample" in Code Samples for Windows Phone
also as [ZombieSheep] suggested: Reminder Class in Mango
3- Background audio play
search for "Background audio play Sample" in Code Samples for Windows Phone
4- Ringtones selection: let the user select which ringtone to use!
search for "Ringtones Sample" in Code Samples for Windows Phone