While the current leading answer dives into the technical details of data recovery, I will (try to) take the broader approach.
How do we define "irrecoverable"?
Depending on the circle you may associate with, "irrecoverable" could mean only some insignificant portion of the data is recoverable.
While I don't practice law, this could prove "sufficient" as a legal defense in some countries. Any critical metadata (timestamps, permissions, etc.) would be missing and thereby limits arguments given by prosecutor against a defendant's alibi.
In other circles—especially malware authors—using XOR operations or base64 encoding makes data "irrecoverable" to the general populous. Good enough for their purposes and easy to implement.
The answer also depends on time scale. Are we done with the data, or do we still want to access the data over time?
I assume that the author is "done" with the data on a given storage medium.
How does data become "unrecoverable"?
It largely depends on:
- Storage medium (magnetic, optical, ROM, NVRAM, etc.)
- Storage medium manufacturer
- Storage medium age/wear
- Environmental conditions
- Compliance with storage interface standard(s)
- Age of said storage interface standard(s)
- Data writing/reading process
At a higher level, most operating systems lack a way to truly validate if data is actually "gone" or "irrecoverable". This is important to note because auditing is a cornerstone in information security.
This is because most software (operating systems and such) don't have a view into the raw data storage — how the controller handling storage medium reads and writes data.
For instance, magnetic storage mediums typically require multiple passes (and multiple orientations) to ensure any residual fields are dissipated. Last time I checked, no firmware on a hard drive exposed a "read the direction and strength of the magnetic field at X, Y, Z". They offer a "tell me what bits are in sector/block X".
How does encrypting data make it "irrecoverable"?
It is believed by many that because the sensitive data was encrypted before the storage medium controller got its hands on it, that is only part of the battle.
Claiming "encrypted with AES-256... military-grade encryption" is common in many pieces of marketing literature. Encrypted data can be easily recovered if it uses one or more weak algorithms, implementations, keys, or seeds. An example of this is "export grade crypto".
Depending on the level of sophistication of the "attacker", a false sense of encryption won't matter if attackers look at the storage medium at a high level (mount the device in an OS), or low level (with a scanning electron microscope).
The advice is that you should encrypt your data.
While I may receive some flak for saying this, most consumers don't want or need encryption for data at rest.
Before some flame war starts, I will explain.
Information security deals with risk assessments. If a storage medium is guaranteed to not hold sensitive data, why would it be encrypted? Encryption often incurs a performance penalty.
Most everyday people would find no encryption on data at rest helpful. As much as it pains me to say it, a lack of encryption allows for easy data recovery. In IT support, it is vastly more common to be asked "I lost my files" than "I want to lose my files".
If you do banking on a device with "encryption", you have many other problems besides the data at rest being secure.
Most amateur street thieves are interested in wiping the device and selling it off. Encryption doesn't help in this case, a factory reset makes data "irrecoverable" to amateur street thieves.
Taking your storage medium to a shredding company is more than sufficient if you no longer have any use for it. That is what I assume the question is asking about.
What if I really need to make my data irrecoverable on some level?
What if I really need to make my data irrecoverable over time while still accessing it?
Assuming you do have sensitive files, corporate secrets, or some other legitimate reason, 3DES or even RC4 may prove enough to encrypt your files — given a strong enough key, reasonable implementation, and your potential attackers belonging to the general (and uniformed) population.
You should be asking who or what you are protecting your data from/against.
If you are looking for generally "unrecoverable", pick a random reputable cipher, give it a completely random key that even you don't know (somewhere in the order of 256 bits), and wait for the process to complete.
Assuming every line of code in the pile of software did its job (and every transistor in every chip) this should prove "irrecoverable" to the wide population.
If you have hesitations, encrypt the data on the drive every decade or so. This way you can ensure that you stay "up to date" on any weaknesses in the cryptography you used.
Be sure to flush any caches that may exist, devices use these for performance and likely contain clear-text contents.
If you are interested in securing data over time, that's a whole other area of information security.