Try slabjacking. This process works best for concrete patios and other small surfaces. Here, a concrete company will lift the edge of the slab using a backhoe or similar equipment. While the slab is raised, they will pump gravel or another base material underneath. When the slab is lowered, it should be smooth and even.
Consider mudjacking. Under this process, small holes are drilled in the existing concrete and extend all the way to the sub-base below the slab. More concrete is poured into these holes to fill the empty cavities under the slab. This will lift and level the concrete while providing a stable base to prevent future sinking.
Use a self-leveling compound for larger surfaces, such as a concrete floor. Before you start, use expansion tape to build a 1/2"-wide dam around the perimeter to the room. This tape will control the flow of the compound.
Fill any holes or cracks in the floor using a blend of concrete mix and water. Apply the mixture using a trowel and wait 4 hours for the patched areas to dry before proceeding.
Mix a self-leveling compound with water in a bucket or wheelbarrow, being sure to only add the minimum amount of water directed by the manufacturer's instructions.
Pour the self-leveling mixture across the floor in roughly one foot wide strips. Gravity will spread the compound and cause it to fill up dips or spaces caused by sinking.