Aside from Account Hierarchy, this is currently not a functionality provided by Salesforce CRM. You can accomplish this by creating a Custom Object that would do a double look up on itself.
To create a parent-child relationship within the same object follow the instructions below:
1. Create a New custom object:
Setup | App Setup | Create | Objects | New Custom Object.
2. Name it "Sub", i.e. SubOpportunity
3. Select Auto Number for the Data Type
4. Do not select any of the "Optional Features" nor any of the "Object Creation" options.
6. Create a Custom Relationship within the new Object. This relationship establishes the Parent Object
7. Data Type = Lookup Relationship
8. Related to = select the Object you want to create the hierarchy in
9. Field Label = Parent, i.e. ParentOpportunity
10. Related List Label = Sub
12. Create a second Custom Relationship within the new object. This relationship selects the Sub Object.
13. Data Type = Lookup Relationship
14. Related to = select the object you want to create the hierarchy in (same object as above)
15. Field Label = Sub, i.e. SubOpportunity
16. Related List Label = Parent
18. Modify Related List to view correct labels but navigating to:
Setup | App Setup | Customize | Object | Page Layouts | Edit | Related List Section
19. Select Sub | Edit Related List Properties
20. Move Sub field from Available Fields to Selected Fields
21. Click "OK".
22. Save Page Layout.
23. Select Parent | Edit Related List Properties
24. Move Parent field from Available Fields to Selected Fields
25. Click "OK"
26. Save Page Layout.
This way you'll be able to create a new Sub- record that can contain a reference to another one similar to a hierarchical set up, on a parent-child fashion.