I-130 is just the first step - this just formally establishes the family relationship in the immigration system. After that, the intending immigrant must obtain a visa, and that's where the waiting game begins.
The number of visas available every year in each category is limited. The visa numbers are issued kind of in a first come first serve basis. So, one has to wait for anyone who applied before him/her to get theirs first. But for immediate relatives of US citizen (spouse/parents/unmarried, under 21 children of USC), there is no wait for a visa. If the I-130 is approved, visa number is available right away. For permanent residents, you wait until your *priority date* becomes current, meaning a visa number becomes available.