Gynecomastia is caused by an imbalance in hormone levels, specifically testosterone and estrogen. It can be a result of natural hormone changes during puberty, medications that contain hormones, or medical conditions such as kidney failure, liver disease, or obesity.