First there are two kinds of project milestones: High level milestones and low level milestones.
High level milestones often do not exist in the project schedule, they are milestones about the main project management activities. To understand things better, here are a few examples of high level milestones:
- Approval of the project charter
- Work on the project starts (execution phase starts)
- Work on the project ends (execution phase ends)
- Project is accepted (signing the acceptance document by the client)
- Project is closed
Of course there are many other high level milestones, but the above are just examples.
Low level milestones exist in the project schedule. There are two types of low level milestones: minor milestones and major milestones. Major milestones are often referred to as simply "project milestones".
There is a minor milestone at the end of nearly every work package (which is an entry in the WBS Level 3), and there is a major milestone at the end of each entry in the WBS Level 2.
An example of a minor milestone is: "HTML mockups finished". This is an example in the software industry, an example of a minor milestone in the construction industry would be "Measuring site area finished".
An example of a project milestone in the software industry is "Design Phase finished". A project milestone in the construction industry would be "Site Assessment Finished". Note that both these major milestones encapsulate the minor milestones mentioned in the above paragraph.
Minor milestones should take around 40 hours for software projects (the size of a work package). Major milestones can take several months, depending on the size of the project. There is no standard (at least that I know of) specifying the size of project milestones.