How to create a block to remind special dates as stored in user profiles? I'm looking for a way to remind special dates per user profile. I mean remember birthdays, marry dates, graduations.

The idea is to display in the home page a block with all those reminders for all the users.

Any suggestions?
Step 1: Flag appropriate users/nodes

I assume you want to show a Block with such reminders (not "sending eMails" ...). To do so, use the Flag module to create a global flag, say you name it "Show Reminder", and then use the Views module to create a block of all "flagged content" (using this flag), similar to what is explained in Creating global flags and listing flagged content in Views.

Step 2: Use Rules to automate the flagging

You don't want to manually flag (and unflag) all such content every day, right? But that's what the Rules module is for: create a (1st) rule to "flag" whatever node, user, etc fits your criteria for "current day", and a similar (2nd) rule to later on "unflag" them again.

Step 3: Trigger both rules once a day

Use the Rules Once per Day module to schedule both rules described in Step 2.

Bonus Features

Handling invalid or missing dates

In case any node or user that "should" show up, doesn't show up on a specific date (since its date is missing or wrong), it's a matter of just flagging such node or user to have it also appear in the block.

Spotlights

For some node or user you for which you don't have a date, but which for some reason you also want to be shown, just flag it and it shows up also.

Creating reminders does not require edit permission

Flagging a node or user can be configured in such a way that you can separate its required permission from editor permissions. That opens possibilities for having various types of users contribute to producing such reminders (if that is what you'd want).